所以我有一个简单的方法,它接受两个输入字符串和一个数组字符串列表。我尝试在给定的数组列表中搜索给定的字符串,如果找到它我将返回它,如果不是,我返回一个声明说它没有找到 这是我的代码:
String findWord(String word, ArrayList<String> list){
for(int i=0; i<list.size(); i++)
if(word.equals(list.get(i)))
return word;
else
return "Word not found";
}
我也尝试过:
String findWord(String word, ArrayList<String> list){
String myString = null;
for(int i=0; i<list.size(); i++)
if(word.equals(list.get(i)))
myString= word;
else
myString = "Word not found";
return myString;
}
但返回值始终为null。
答案 0 :(得分:7)
尝试,
String findWord (String word, ArrayList<String> list) {
for (int i = 0; i < list.size(); i++) {
if (word.equals (list.get (i))) {
return list.get (i);
}
}
return "Word not found";
}
答案 1 :(得分:3)
不要这样做,请尝试:list.contains(yourString);如果列表包含您的字符串,它将返回true。
答案 2 :(得分:2)
列表必须为空,否则不会通过if / else。
您可以将方法简化为
String findWord(String word, ArrayList<String> list) {
return list.contains(word) ? word : "Word not found";
}
答案 3 :(得分:0)
编译器知道for循环可以有0次迭代,并且不会接受你在for循环之后没有指定return语句,以支持循环为空的情况。
答案 4 :(得分:0)
无论如何,你不会被允许编译第一个。(如果列表大小为0,它将返回任何内容,尽管返回类型为“String”)。第二,我做了一点修改。否则,如果在列表ArrayList
中匹配一次之后没有匹配的单词,则会返回“未找到字”。获得null的唯一情况是列表为空。
String findWord(String word, ArrayList<String> list){
for(int i=0; i<list.size(); i++)
if(null != word && word.equals(list.get(i)))
return word;
return "Word not found";
}
无论如何,如果你像Delfino Gomes所说的那样使用list.contains(Word),它会非常有效。