Można wykorzystać java.util.Collections
klasę Androida, które pomogą Ci w tym. W szczególności użyteczne będzie: disjoint
:
Powoduje, czy określone kolekcje nie mają wspólnych elementów.
Oto przykład kodu, który powinien zacząć.
W swojej działalności lub gdziekolwiek jesteś sprawdzając, czy wyniki zawierają słowo, którego szukasz:
String[] results = {"dog", "cat"};
String[] wordsWeAreLookingFor = {"foo", "dog"};
boolean foundWordInResults = this.checkIfArrayContainsAnyStringsInAnotherArray(results, wordsWeAreLookingFor);
Log.d("MyActivity", "foundWordInResults:" + foundWordInResults);
Również w Twoim tej samej klasy, a może klasie użytkowej:
private boolean checkIfArrayContainsAnyStringsInAnotherArray(String[] results, String[] wordsWeAreLookingFor) {
List<String> resultsList = Arrays.asList(results);
List<String> wordsWeAreLookingForList = Arrays.asList(wordsWeAreLookingFor);
return !Collections.disjoint(resultsList, wordsWeAreLookingForList);
}
Należy zauważyć, że ta konkretna próbka kodu będzie zawierała wartość true w foundWordInResults
, ponieważ "pies" jest zarówno w postaci results
, jak i wordsWeAreLookingFor
.
Aby odpowiedzieć na większe pytanie, możesz nam powiedzieć. Dlaczego masz listę słów i dlaczego chcesz sprawdzić 4-5 różnych? – Blundell
Co masz na myśli, mówiąc więcej parametrów? Chcesz znaleźć całe zdanie lub coś innego? – jpm
@jpom ma na myśli 'if (Arrays.asList (wyniki) .contains (" Word ") || Arrays.asList (wyniki) .contains (" Word2 ") || Arrays.asList (wyniki) .contains (" Word3 ")) ' – Blundell