Как определить, содержит ли массив определенное значение в Java? - PullRequest
2115 голосов
/ 15 июля 2009

У меня есть String[] со значениями, такими как:

public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};

Учитывая String s, есть ли хороший способ проверить, содержит ли VALUES s?

Ответы [ 25 ]

3 голосов
/ 30 апреля 2015

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.
}
3 голосов
/ 05 июня 2014

Проверьте это

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
    }
}
3 голосов
/ 21 сентября 2018

Если вы не хотите, чтобы он был чувствительным к регистру

Arrays.stream(VALUES).anyMatch(s::equalsIgnoreCase);
3 голосов
/ 30 мая 2013

Используйте Array.BinarySearch(array,obj) для нахождения данного объекта в массиве или нет.

Пример:

if (Array.BinarySearch(str, i) > -1)` → true --exists

ложь - не существует

0 голосов
/ 17 мая 2018

Создать логическое значение, изначально установленное в false. Запустите цикл, чтобы проверить каждое значение в массиве и сравнить со значением, которое вы проверяете. Если вы когда-нибудь получите совпадение, установите логическое значение в true и остановите цикл. Затем утверждают, что логическое значение истинно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...