Można użyć StringUtils klasę biblioteki Apache Commons lub this Jeśli nie chcesz aby pobrać bibliotekę spójrz na source code dla logiki, aby utworzyć metodę. stackoverflow link do korzystania StringUtils
Jeśli chcesz znaleźć indeks String z tablicy ciągów następnie istnieje inna biblioteka ArrayUtils który ma metodę indexOf
oto realizacja indexOf
public static int indexOf(Object[] array, Object objectToFind, int startIndex) {
if (array == null) {
return INDEX_NOT_FOUND;
}
if (startIndex < 0) {
startIndex = 0;
}
if (objectToFind == null) {
for (int i = startIndex; i < array.length; i++) {
if (array[i] == null) {
return i;
}
}
} else {
for (int i = startIndex; i < array.length; i++) {
if (objectToFind.equals(array[i])) {
return i;
}
}
}
return INDEX_NOT_FOUND;
}
ponieważ widzisz, że używa .equals() proponuję ci
1) utwórz niestandardową klasę ciągów znaków
2) dodać go do tablicy
3) zastąpić metodę .equals jak ten
class StringCustom
{
String string;
//implement getters and setters
public String equals(Object o)
{
return this.getString().equalsIgnoreCase(((String)o).getString());
}
}
Chociaż zmienię ciąg w polu tekstowym na wielkie/małe litery, nie wiem jak to jest w podanej macierzy. –
Ponadto ciągi w tablicy są używane jako autouzupełnienia. Więc nie mogę ich przekonwertować na duże/małe litery (nie będzie dobrze wyglądać w menu rozwijanym). Może być konieczne utworzenie nowej tablicy ze wszystkimi ciągami znaków jako dolnymi/dużymi literami.Ale nie jest to najlepsze podejście. –
Myślę, że byłoby lepiej, wydajność byłaby "O (n)" –