java - string array to list c#




Java,如果List包含String則返回 (4)

使用Java 8 Stream API:

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

在Java中,我想檢查一個String是否存在於List<String> myList

像這樣的東西:

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

問題是myList可以包含未修剪的數據:

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

如果我的項目'B'在列表中,我希望它返回true。 我該怎麼做? 我想避免循環結構。


您可以使用正則表達式在一行中完成:

if (myList.toString().matches(".*\\bA\\b.*"))

這段代碼應該表現得很好。

順便說一下,你可以從變量構建正則表達式,如下所示:

.matches("\\[.*\\b" + word + "\\b.*]")

當搜索項在開頭/結尾包含一個打開/關閉方括號時,我在每一端添加[]以防止誤報匹配。


您需要迭代列表並調用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))

試試這個:

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

您需要使用str.equalsstr.equalsIgnoreCase而不是contains因為string中的containsList contains

List<String> s = Arrays.asList("BAB", "SAB", "DAS");
s.contains("A"); // false
"BAB".contains("A"); // true






list