2016-07-12 97 views
0

在java中,我们是否有任何方法来查找特定字符串是字符串数组的一部分。 我可以做一个我想避免的循环。Java - 在字符串数组中搜索字符串

例如

String [] array = {"AA","BB","CC" }; 
string x = "BB" 

我想一个

if (some condition to tell whether x is part of array) { 
     do something 
    } else { 
    do soemthing 
    } 
+0

什么是与0的研究工作...问题 – Li357

+5

令人难以置信的是懒惰的问题 – Tom

+0

不知道你是否知道什么是SO – ha9u63ar

回答

10

做这样的事情:

Arrays.asList(array).contains(x); 

因为这回如果String真x存在于数组中(现在转换为一个列表...)

例子:

if(Arrays.asList(array).contains(x)){ 
    // is present ... :) 
} 
+1

我认为重要的是要注意,这并不会去检查'array'中的每个元素,看看它是否匹配'x',它只是隐藏了程序员的工作。不是敲这个答案。人们应该意识到,就是这样。 –

3

该代码会为你工作:

bool count = false; 
for(int i = 0; i < array.length; i++) 
{ 
    if(array[i].equals(x)) 
    { 
     count = true; 
     break; 
    } 
} 
if(count) 
{ 
    //do some other thing 
} 
else 
{ 
    //do some other thing 
} 
+1

这不起作用。你必须在循环内设置一个布尔值或计数,然后在循环外我可以检查该变量来执行某些操作。但我想避免循环。 –

+0

如果数组中不存在该值,那么OP想要做其他事情,而不是该数组中不是该值的每个元素。 – azurefrog

+0

然后你可以在循环中使用一个用'0'初始化的变量,看看它是否与任何字符串匹配。并检查循环外部,如果变量不是0,则执行其他操作... – VatsalSura

2

你也可以使用Apache的commons-lang库,提供了大加赞赏法contains

import org.apache.commons.lang.ArrayUtils; 

public class CommonsLangContainsDemo { 

    public static void execute(String[] strings, String searchString) { 
     if (ArrayUtils.contains(strings, searchString)) { 
      System.out.println("contains."); 
     } else { 
      System.out.println("does not contain."); 
     } 
    } 

    public static void main(String[] args) { 
     execute(new String[] { "AA","BB","CC" }, "BB"); 
    } 

}