当前位置: 首页 > 面试题库 >

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

曾嘉祯
2023-03-14
问题内容

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

而不是使用

if (string.contains(item1) || string.contains(item2) || string.contains(item3))

问题答案:

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


 类似资料:
  • 我是Kotlin的新手(我有Java背景),我似乎不知道如何检查字符串是否包含关键字列表中的匹配项。 我想做的是检查一个字符串是否包含一个关键字数组的匹配(请不区分大小写)。如果是,则打印出匹配的关键字和包含该关键字的字符串。(我将循环访问一个文件中的一串字符串)。 这里有一个MVE供初学者使用: 作为一个开始(这忽略了'match'变量和getting-a-list-of-keywords-ma

  • 问题内容: 我正在编写一个程序,其中用户以以下格式输入字符串: 我需要检查字符串中是否有数字 然后只提取数字。 如果我使用或,则无论输入的内容是什么,程序都无法在字符串中找到数字,但是仅在只有数字的情况下才能使用。 我可以使用什么作为查找和提取的解决方案? 问题答案: 我使用的解决方案如下所示: 我确信这不是一个完美的解决方案,但它满足了我的需求。谢谢大家的帮助。:)

  • 我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 问题内容: 我正在尝试检测字符串是否包含至少一个存储在数组中的URL。 这是我的数组: 该字符串由用户输入并通过PHP提交。在确认页面上,我想检查输入的URL是否在数组中。 我尝试了以下方法: 无论输入什么,返回值始终为“找不到匹配项”。 这是正确的做事方式吗? 问题答案: 尝试这个。 如果要检查不区分大小写,请使用stristr()或stripos()。

  • 问题内容: 我需要检查字符串是否包含数字。任何数字。字符串是否为数字,而不是数字,但包含一个数字。 例子: ‘test’=没有数字。 ‘test2’=包含数字。 问题答案: 使用正则表达式: 不使用正则表达式: