Simplifier une ligne de code [Fermé]

Messages postés
29
Date d'inscription
mercredi 14 août 2013
Statut
Membre
Dernière intervention
12 juillet 2018
- - Dernière réponse : KX
Messages postés
16004
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
4 juillet 2019
- 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!
Afficher la suite 

2 réponses

Messages postés
8563
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1163
0
Merci
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.
Adriang19
Messages postés
29
Date d'inscription
mercredi 14 août 2013
Statut
Membre
Dernière intervention
12 juillet 2018
-
Bonjour, je débute en java et je connais pas bien les tableaux. Il y a pas un moyen plus simple?
KX
Messages postés
16004
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
4 juillet 2019
2386 > Adriang19
Messages postés
29
Date d'inscription
mercredi 14 août 2013
Statut
Membre
Dernière intervention
12 juillet 2018
-
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é" ?
Messages postés
16004
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
4 juillet 2019
2386
0
Merci
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
}