如何验证String是否包含List中的任何字符串?

时间:2017-09-25 07:22:03

标签: java arrays list collections

我发现只有关于匹配的给定字符串是列表项的子字符串的情况的问题,但我需要的是相反的情况:

我有一个字符串列表,可能是给定String的确切字符串或子字符串。

使用:

boolean bValid = listOfStrings.contains(sText);
如果在列表中找不到sText,则

给我假。

例如:

假设我有以下字符串列表:

List<String> listOfStrings = Arrays.asList("ABC","DEF","GHI");

我需要找出其中一个项是否等于或是否为子串,例如字符串: ABC1 &#34;。

我会得到false。但我想在这种情况下获得true

4 个答案:

答案 0 :(得分:5)

使用Stream API,您可以通过以下方式执行此操作:

String s = "ABC1";
bValid = listOfStrings.stream()
                      .anyMatch(s::contains);

基本上,撤销检查 - 检查s是否包含String中的List个{/ 1}}。

答案 1 :(得分:3)

您需要遍历列表并检查字符串中是否包含任何列表项。

for(String s: listOfStrings) {
    if(sText.contains(s)) {
        bvalid = true;
    }
}

答案 2 :(得分:1)

@ Tobias解决方案的性能提升。

  

如果找到了匹配项,请确保将中断循环。

for(String s: listOfStrings) {
    if(sText.contains(s)) {
        bvalid = true;
        break;
    }
}

答案 3 :(得分:0)

List<String> listOfStrings = Arrays.asList("ABC", "DEF", "GHI");
    boolean bValid = false;
    String sText = "ABC1";
    for(String str: listOfStrings) {
        if(sText.contains(str)) {
            bValid = true;
        }
    }
    System.out.println(bValid);

希望上面的代码对你有所帮助。如果没有,请回复并清楚地简要介绍您的问题。

感谢。