Java,如果列表中修剪的字符串包含字符串,则返回

2022-08-31 17:43:41

在Java中,我想检查字符串是否存在于.List<String> myList

像这样:

if(myList.contains("A")){
    //true
}else{
    // false
}

问题是 myList 可以包含未修剪的数据:

{'  A', 'B  ', '  C  '}

如果我的项目在列表中,我希望它返回 true。我应该怎么做?我想避免循环结构。'B'


答案 1

使用 Java 8 Stream API:

List<String> myList = Arrays.asList("  A", "B  ", "  C  ");
return myList.stream().anyMatch(str -> str.trim().equals("B"));

答案 2

您需要迭代列表并调用 String#trim 进行搜索:

String search = "A";
for(String str: myList) {
    if(str.trim().contains(search))
       return true;
}
return false;

或者,如果要执行忽略事例搜索,请使用:

search = search.toLowerCase(); // outside loop

// inside the loop
if(str.trim().toLowerCase().contains(search))