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

我做了什么:

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

如果我打印val,它会给我期望值。

if(val.contains("abcd"))

它返回false,尽管在打印val值时它由abcd组成。

什么可能是错的?

编辑:我的数组列表如何获取值:

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

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

===============>>#1 票数:2

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

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

===============>>#2 票数:0

如果getValues()返回字符串getValues() ,则需要确保字符串“ abcd”与参数中给出的完全相同。 同样,由于根据docs ,contains方法实现了equals方法进行比较,因此您应确保字符串具有正确的大小写,因为equals区分大小写。

===============>>#3 票数:0

contains()方法通过在equals()方法上比较Arraylist的元素来工作。 如果您的数组列表具有“ abcd”,则应返回“ true”。 尝试检查您的getValues()方法是否返回一些隐藏的字符/空格以及“ abcd”。

===============>>#4 票数:-1

做下面的事情。

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

  ask by user3505394 translate from so

未解决问题?本站智能推荐: