如何检查字符串是否具有来自 List 的子字符串?
我正在寻找检查字符串是否包含关键字列表中的子字符串的最佳方法。
例如,我创建了一个如下列表:
List<String> keywords = new ArrayList<>();
keywords.add("mary");
keywords.add("lamb");
String s1 = "mary is a good girl";
String s2 = "she likes travelling";
字符串 s1 具有关键字中的“mary”,但字符串 s2 没有它。所以,我想定义一个方法:
boolean containsAKeyword(String str, List<String> keywords)
其中将返回 true,但将返回 false。即使存在单个子字符串匹配项,我也可以返回 true。containsAKeyword(s1, keywords)
containsAKeyword(s2, keywords)
我知道我可以只是迭代关键字列表,并在列表中的每个项目上调用str.contains(),但我想知道是否有更好的方法来迭代整个列表(避免O(n)复杂性),或者Java是否为此提供了任何内置方法。