Java测试字符串是否包含数组中的任何字符串

发布于 2021-02-02 22:44:16

如何测试字符串以查看其是否包含数组中的任何字符串?

而不是使用

if (string.contains(item1) || string.contains(item2) || string.contains(item3))
关注者
0
被浏览
115
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    编辑:这是使用Java 8流API的更新。如此清洁。仍然可以与正则表达式结合使用。

    public static boolean stringContainsItemFromList(String inputStr, String[] items) {
        return Arrays.stream(items).parallel().anyMatch(inputStr::contains);
    }
    

    另外,如果我们将输入类型更改为List而不是数组,则可以使用items.parallelStream().anyMatch(inputStr::contains)

    .filter(inputStr::contains).findAny()如果希望返回匹配的字符串,也可以使用。

    原始的过时的答案:

    这是(VERY BASIC)静态方法。请注意,在比较字符串上区分大小写。一个原始的,使其不区分大小写的办法是打电话toLowerCase()toUpperCase()输入和测试串两者。

    如果你需要做的事情比这更复杂,我建议你查看一下Pattern和Matcher类,并学习如何做一些正则表达式。了解这些内容后,就可以使用这些类或String.matches()辅助方法。

    public static boolean stringContainsItemFromList(String inputStr, String[] items)
    {
        for(int i =0; i < items.length; i++)
        {
            if(inputStr.contains(items[i]))
            {
                return true;
            }
        }
        return false;
    }
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看