Simplifier une ligne de code

Fermé
Adriang19 Messages postés 29 Date d'inscription mercredi 14 août 2013 Statut Membre Dernière intervention 12 juillet 2018 - 12 juil. 2018 à 15:21
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 12 juil. 2018 à 21:35
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
12 juil. 2018 à 17:17
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 mercredi 14 août 2013 Statut Membre Dernière intervention 12 juillet 2018
12 juil. 2018 à 20:14
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > Adriang19 Messages postés 29 Date d'inscription mercredi 14 août 2013 Statut Membre Dernière intervention 12 juillet 2018
12 juil. 2018 à 21:06
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié le 12 juil. 2018 à 21:36
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