我有一个arraylist,我想检查一下arraylist是否有特定的字符串。我发现.contains()可以解决问题。但是,当我循环运行它以检查arraylist中的“ bot”一词时。结果还包括“聊天机器人”和“机器人”作为“机器人”,这并不是我想要的结果。但是,如果我没有循环就做,那很好,我不明白为什么。
代码:
// Java code to demonstrate the working of
// contains() method in ArrayList of string
// for ArrayList functions
import java.util.ArrayList;
public class test {
public static void main(String[] args)
{
// creating an Empty String ArrayList
ArrayList<String> arr = new ArrayList<String>(4);
ArrayList<String> arr2 = new ArrayList<String>(4);
// using add() to initialize values
arr.add("chatbot");
arr.add("robot");
arr.add("bot");
arr.add("lala");
// use contains() to check if the element
for (int i=0;i<arr.size();i++){
boolean ans = arr.get(i).contains("bot");
if (ans) {System.out.println("1: The list contains bot"); }
else
{System.out.println("1: The list does not contains bot");}
}
System.out.println();
for (String str : arr) {
if (str.toLowerCase().contains("bot")) {
System.out.println("2: The list contains bot");;
}
else
{System.out.println("2: The list does not contains bot");}
}
// use contains() to check if the element
System.out.println();
arr2.add("robot");
boolean ans = arr2.contains("bot");
if (ans)
System.out.println("3: The list contains bot");
else
System.out.println("3: The list does not contains bot");
}
}
结果:
1: The list contains bot
1: The list contains bot
1: The list contains bot
1: The list does not contains bot
2: The list contains bot
2: The list contains bot
2: The list contains bot
2: The list does not contains bot
3: The list does not contains bot
如果只想匹配精确的字符串,请使用.equals而不是.contains:
public static void main(String s[]) {
test.add("bot");
test.add("ibot");
test.add("abot");
String str = "bot";
for(int i=0;i<test.size();i++) {
if(str.equals(test.get(i))) {
System.out.println("True");
}
else {
System.out.println("False");
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句