Si può utilizzare java.util.Collections
classe di Android per aiutarvi con questo. In particolare, disjoint
sarà utile:
Restituisce se le raccolte specificate non hanno elementi in comune.
Ecco un esempio di codice che dovrebbe iniziare.
nella vostra attività o dove si sta verificando per vedere se i risultati contengono una parola che si sta cercando:
String[] results = {"dog", "cat"};
String[] wordsWeAreLookingFor = {"foo", "dog"};
boolean foundWordInResults = this.checkIfArrayContainsAnyStringsInAnotherArray(results, wordsWeAreLookingFor);
Log.d("MyActivity", "foundWordInResults:" + foundWordInResults);
Anche nella stessa classe, o forse una classe di utilità:
private boolean checkIfArrayContainsAnyStringsInAnotherArray(String[] results, String[] wordsWeAreLookingFor) {
List<String> resultsList = Arrays.asList(results);
List<String> wordsWeAreLookingForList = Arrays.asList(wordsWeAreLookingFor);
return !Collections.disjoint(resultsList, wordsWeAreLookingForList);
}
Si noti che questo particolare esempio di codice conterrà true in foundWordInResults
poiché "dog" è in entrambi results
e wordsWeAreLookingFor
.
Per rispondere alla domanda più grande, potresti dircelo. Perché hai una lista di parole e perché vuoi controllare per 4-5 diversi? – Blundell
Cosa intendi con più termini del parametro? Tipo, staresti cercando una frase intera o cosa? – jpm
@jpom indica "if (Arrays.asList (results) .contains (" Word ") || Arrays.asList (results) .contains (" Word2 ") || Arrays.asList (results) .contains (" Word3 ")) ' – Blundell