205 votes

Tester si une chaîne contient l'une des chaînes d'un tableau

Comment tester une chaîne pour voir si elle contient l'une des chaînes d'un tableau ?

À la place d'utiliser

 if (string.contains(item1) || string.contains(item2) || string.contains(item3))

60voto

Renanlf Points 879
import org.apache.commons.lang.StringUtils;

Utilitaires de chaîne

Utiliser:

 StringUtils.indexOfAny(inputString, new String[]{item1, item2, item3})

Il renverra l'index de la chaîne trouvée ou -1 si aucune n'est trouvée.

36voto

anubhava Points 172509

Vous pouvez utiliser la méthode String#matches comme ceci :

 System.out.printf("Matches - [%s]%n", string.matches("^.*?(item1|item2|item3).*$"));

14voto

Roy Kachouh Points 674

Le moyen le plus simple serait probablement de convertir le tableau en java.util.ArrayList. Une fois qu'il est dans une liste de tableaux, vous pouvez facilement tirer parti de la méthode contains.

 public static boolean bagOfWords(String str)
{
    String[] words = {"word1", "word2", "word3", "word4", "word5"};  
    return (Arrays.asList(words).contains(str));
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X