我正在寻找最佳方法来检查一个字符串是否包含关键字列表中的子字符串。如何检查一个字符串是否有一个来自列表的子字符串?
例如,我创建了一个列表如下:
List<String> keywords = new ArrayList<>();
keywords.add("mary");
keywords.add("lamb");
String s1 = "mary is a good girl";
String s2 = "she likes travelling";
字符串s1为从关键字“玛丽”,但字符串s2没有它。所以,我想定义一个方法:
boolean containsAKeyword(String str, List<String> keywords)
凡containsAKeyword(s1, keywords)
将返回true,但containsAKeyword(s2, keywords)
将返回false。即使只有一个子字符串匹配,我也可以返回true。我知道我可以迭代关键字列表并在列表中的每个项目上调用str.contains(),但我想知道是否有更好的方法来遍历整个列表(避免O(n)复杂性),还是Java为此提供了任何内置方法。
你可以找到你可以在这里字符串调用方法:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html我发现它非常有帮助的,通过看所有由String类中的方法定义的标准功能。 – Joop 2014-11-24 17:36:55