我试图在一个字符串中找到一个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);
}
}
任何有助于此工作的帮助将非常感谢:) 谢谢!
答案 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;
}