У меня есть String[] со значениями, такими как:
String[]
public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};
Учитывая String s, есть ли хороший способ проверить, содержит ли VALUES s?
String s
VALUES
s
Arrays.asList () -> тогда вызов метода contains () всегда будет работать, но алгоритм поиска намного лучше, так как вам не нужно создавать облегченную оболочку списка вокруг массива, как это делает Arrays.asList () делает.
public boolean findString(String[] strings, String desired){ for (String str : strings){ if (desired.equals(str)) { return true; } } return false; //if we get here… there is no desired String, return false. }
Проверьте это
String[] VALUES = new String[] {"AB","BC","CD","AE"}; String s; for(int i=0; i< VALUES.length ; i++) { if ( VALUES[i].equals(s) ) { // do your stuff } else{ //do your stuff } }
Если вы не хотите, чтобы он был чувствительным к регистру
Arrays.stream(VALUES).anyMatch(s::equalsIgnoreCase);
Используйте Array.BinarySearch(array,obj) для нахождения данного объекта в массиве или нет.
Array.BinarySearch(array,obj)
Пример:
if (Array.BinarySearch(str, i) > -1)` → true --exists
ложь - не существует
Создать логическое значение, изначально установленное в false. Запустите цикл, чтобы проверить каждое значение в массиве и сравнить со значением, которое вы проверяете. Если вы когда-нибудь получите совпадение, установите логическое значение в true и остановите цикл. Затем утверждают, что логическое значение истинно.