Simplifier une ligne de code

Adriang19 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je souhaiterai simplifier ma comparaison suivante:

if ((Texte1.matches(bonjour|salut)) | ((Texte2.matches(bonjour|salut)) | ((Texte3.matches(bonjour|salut)){

suite;

}

Je souhaiterai pouvoir écrire un truc du genre:

if ((Texte1 OU Texte2 OU Texte3).matches(bonjour|salut)){
suite;
}

J'ai beaucoup de donner à écrire et ça me faciliterai grandement la tâche :)

Merci d'avance!
A voir également:

2 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

tu pourrais mettre en place une fonction qui prendrait en paramètre 2 tableaux, un avec les chaines de texte à vérifier et un autre avec les valeurs à comparer.
0
Adriang19 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, je débute en java et je connais pas bien les tableaux. Il y a pas un moyen plus simple?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > Adriang19 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Ce n'est pas parce que tu ne connais pas que ce n'est pas simple...
Si tu te limites juste à ce que tu connais, alors que tu débutes et donc que tu ne connais pas grand chose, ça va être difficile de continuer à coder des programmes de plus en plus complexe.

Ici tu pourrais également envisager de faire une méthode qui fait le match, ainsi au lieu de faire 3 codes identiques tu fais 3 appels à la même méthode.

Mais est ce que tu sais faire des méthodes ? Ou est ce que ça aussi tu vas t'interdire de les utiliser par "facilité" ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Un exemple avec tableaux, boucles et méthodes, rien de particulièrement compliqué.

public static boolean matchAnyWords(String value, String... words) {
    for (String word : words) {
        if (value.equals(word))
            return true;
    }
    return false;
}

public static boolean anyMatchHelloWords(String... values) {
    for (String value : values) {
        if (matchAnyWords(value, "bonjour", "salut"))
            return true;
    }
    return false;
}

public static void main(String[] args) {
    System.out.println(anyMatchHelloWords("tata", "toto", "titi")); // false
    System.out.println(anyMatchHelloWords("tata", "salut", "titi")); // true
}
0