我正在尋找最佳方法來檢查一個字符串是否包含關鍵字列表中的子字符串。如何檢查一個字符串是否有一個來自列表的子字符串?
例如,我創建了一個列表如下:
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