2013-03-05 3 views
0

Привет всем, кто программирует приложение на Android, и я не знаю, что делать, чтобы получить это, что я пытаюсь. Я сейчас, что это очень просто, но, пожалуйста, помогите мне!Как узнать, находится ли строка внутри массива на Android?

Позволяет сказать, что у меня есть массив:

String coco[] = { "hi", "everybody", "superman", "batman" }; 

А также у меня есть:

String heroe = "superman"; 

Теперь мне нужно сделать петлю, метод или любой другой, который принимает «Heroe» и выполните поиск, если это значение («супермен») внутри массива, а затем, если это значение существует ИСТИНА и если не существует FALSE.

Спасибо, ребята.

ответ

8

Самый удобный способ заключается в обращенного массива в список и искать потом.

Это чистый, короткий и выразительный.

boolean isThere = Arrays.asList(yourArray).contains("needle"); 
+0

Самое элегантное решение. +1 –

+0

+1, отличный не знал об этом. –

+0

Привет, спасибо! Это действительно работает! чистым, коротким и выполняйте эту работу. Я просто добавляю if (Arrays.asList (yourArray) .contains («String to search») == true) { –

1
for(int i=0;i<coco.length;i++) 
{ 
    if(coco[i].equals(heroe)) 
     return true; 
} 
1

Вот простое решение. Было бы проще использовать ArrayList, который может использовать метод .contains().

for(int i = 0; i < coco.length; i++) 
{ 
     if(coco[i].equals(heroe)) 
     { 
      // a match! 
      return true; 
     } 
} 

// no match 
return false; 
1

Просто перебирать значения в массиве и сравнить их значения вы ищете

public boolean arraySearch(String[] strArray, String key) { 

    for (String s : strArray) { 
     if (s.equals(key)) { 
      return true; 
     } 
    } 
    return false; 
} 

Вы можете использовать это, вызывая arraySearch(coco, heroe); в вашем коде.

В качестве альтернативы можно использовать Arrays класс и использовать:

boolean keyPresent = Arrays.asList(coco).contains(heroe); 
1

Вы можете сделать так.

Просто возьмите переменную, которую вы хотите искать, итерации массива и используйте метод equals.

String heroe = "superman"; 
boolean flag = false; 
for(int index = 0; index < coco.length; index++) 
{ 
    Strin value = coco[index]; 
    if(heroe.equals(value)) 
    { 
     flag = true; 
    } 
} 

if(flag) { 
    //Exist 
} 
else { 
    //Not Exist 
} 
1

вы могли бы сделать некоторые вещи, как это:

for (String testcoco : coco) 
    { 
     if (testcoco.contains("superman")) 
     { 
      return true; 
     } 
    } 
    return false; 
+0

';' в строке оператора if закрывает оператор, что означает, что первая итерация всегда будет возвращать true. Вам также не хватает скобок вокруг условия if. –

+0

Да, вы правы, исправлены. –

0
public boolean checkPresence(String desired) 
for(String s:coco){ 
    if(s.equals(desired)){ 
     return true 
     } 
    } 
    return false; 
Смежные вопросы