为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千巷猫影 2019-11-14 09:40:25
如何测试字符串以查看其是否包含数组中的任何字符串?而不是使用if (string.contains(item1) || string.contains(item2) || string.contains(item3))
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

编辑:这是使用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;

}


查看完整回答
反对 回复 2019-11-14
?
青春有我

TA贡献1784条经验 获得超8个赞

最简单的方法可能是将数组转换为java.util.ArrayList。将其放入数组列表后,即可轻松利用contains方法。


public static boolean bagOfWords(String str)

{

    String[] words = {"word1", "word2", "word3", "word4", "word5"};  

    return (Arrays.asList(words).contains(str));

}


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 618 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信