Simplifier une ligne de code

Adriang19 Messages postés 31 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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!

2 réponses

  1. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
     
    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
    1. Adriang19 Messages postés 31 Statut Membre
       
      Bonjour, je débute en java et je connais pas bien les tableaux. Il y a pas un moyen plus simple?
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > Adriang19 Messages postés 31 Statut Membre
         
        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
  2. KX Messages postés 19031 Statut Modérateur 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