比较字符串与arraylist

时间:2014-04-21 05:12:04

标签: java arraylist

我有一个我需要与String进行比较的arrayList。

我做了什么:

ArrayList<String> val = new ArrayList<String>();
val= getValues();

如果我打印val,它会给出我预期的值。但

if(val.contains("abcd"))

虽然在打印值时,它返回false,但它由abcd组成。

可能出现什么问题?

编辑: 我的arraylist如何获得价值观:

IOUtils.copy(inputStream , write)
str = write.toString()

ArrayList<String> list = new ArrayList<String>();
list.addAll(Arrays.asList(str));
return list;

4 个答案:

答案 0 :(得分:2)

您需要确保val完全包含string abcd(没有空格,没有大写)。但是如果它不区分大小写且你允许空间,那么你可以这样检查它:

boolean isExist = false;
for(int i=0;i<val.size();i++){
    if(val.get(i).trim().toLowerCase().equals("abcd")){
        isExist=true;
        break;
    }
}

答案 1 :(得分:0)

如果getValues()返回字符串的arraylist,则需要确保字符串&#34; abcd&#34;正如参数中给出的那样。另外,由于根据docs,contains方法实现了equals方法进行比较,你应该确保字符串具有正确的大小写,因为equals是区分大小写的。

答案 2 :(得分:0)

contains()方法通过比较equals()方法中的Arraylist元素来工作。如果你的arraylist有“abcd”,它应该返回'true'。尝试检查你的getValues()方法是否返回一些隐藏的字符/空格以及“abcd”。

答案 3 :(得分:-1)

执行以下操作。

for(int i=0;i<val.size();i++){
    if(val.get(i).contains("abcd") || val.get(i).contains("ABCD")){
      // do some thing here
    }
}