我遇到了查找另一个字符串中所有子字符串出现的任务,并想知道什么是解决此问题的最佳算法。字符串中子字符串出现的性能
为了演示目的,我使用了字符串“猫坐在垫子上”并搜索子字符串“at”的所有出现。这将最终导致3的occurence计数由于我在Java的时刻,突然出现在我的脑海里的第一件事编程是这样的:
public static void main(String[] args) {
int count=0;
String s = "The cat sat on the mat";
Pattern pattern = Pattern.compile("at");
Matcher matcher = pattern.matcher(s);
while(matcher.find()){
count++;
}
System.out.println("Pattern: "+pattern+" Count: "+count);
}
不知怎的,我怀疑,这是最佳的解决方案为这个问题。所以,如果有人知道最佳(或至少相当不错)的解决方案应该看起来...请回答!你可以用任何语言发布你的答案,不一定是java(尽管那会很棒:))。
非常感谢!
在某种程度上取决于搜索字符串的长度与搜索字符串的长度,字母大小以及您要执行的搜索次数。 – 2010-08-27 09:49:27
但是如果你还没有测量过性能问题,请不要担心...... – 2010-08-27 09:49:52