Java - 在数组中搜索子字符串

时间:2013-05-30 07:00:43

标签: java arrays search substring

我试图在一个字符串中找到一个subString,在一个arraylist中,但我无法让它工作。 它必须循环遍历arraylist,直到找到子字符串,然后停止。

这是我到目前为止所拥有的

    private static void teamSearch(String teamName) {

    String subString = teamName;
    String string = "";
    boolean contains = false;

    while (contains = false){
    for (int i = 0; i < clubList.size(); i++){
        string = clubList.get(i).aliases;
        contains = string.contains(subString);
    }
    System.out.println(contains);
    }
}

任何有助于此工作的帮助将非常感谢:) 谢谢!

7 个答案:

答案 0 :(得分:1)

使用

while (contains == false)

而不是

while (contains = false)

=是一个赋值运算符,==是比较运算符。你在while循环中为包含赋值false。你必须比较值

答案 1 :(得分:1)

避免while循环。使用break语句。如果不小心,while循环会导致无限循环。

private static void teamSearch(String teamName) {
    String subString = teamName;
    String string = "";
    boolean contains = false;

    for (int i = 0; i < clubList.size(); i++){
        string = clubList.get(i).aliases;
        if (string.contains(subString)) {
           contains = true; 
           break;
        }
    }
    System.out.println(contains);
}

答案 2 :(得分:0)

您的while循环条件错误,请将其更改为while ( contains == false )

答案 3 :(得分:0)

你试图在那里分配一个值。你需要检查值是否等于

while (contains == false) //checking equality


while (contains = false) //assigning

答案 4 :(得分:0)

您可以使用

while (!contains) {...}

但是简单地放弃while循环和break for循环

可能更容易
for (int i = 0; i < clubList.size(); i++){
    string = clubList.get(i).aliases;
    contains = string.contains(subString);
    if (contains) {
        break;
    }
}

答案 5 :(得分:0)

你的内部for循环继续滚动 - 即使它找到带有子串的别名。

您需要在找到匹配时终止循环。这是一个天真但正确的实现

private static void teamSearch(String teamName) {

    String subString = teamName;
    String string = "";
    boolean contains = false;

    for (int i = 0; i < clubList.size(); i++){
        string = clubList.get(i).aliases;
        if (string.contains(subString){ 
          contains = true;
          break;
        } 
    }
    System.out.println(contains);
}

答案 6 :(得分:0)

它可能有用

boolean flag = false;

    String subString = "nice";


    ArrayList<String> arrayList = new ArrayList<String>(2);


    arrayList.add("good morning");


    arrayList.add("that is nice");


    for (String element : arrayList) {


        if (element.contains(subString))


            flag = true;


        else


            flag = false;


    }