【发布时间】:2011-04-04 17:16:37
【问题描述】:
我遇到了在另一个字符串中查找所有出现的子字符串的任务,并且想知道解决这个问题的最佳算法是什么。
出于演示目的,我使用了字符串“The cat sat on the mat”并搜索所有出现的子字符串“at”。这最终应该导致出现次数为 3。由于我现在正在使用 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(虽然那会很棒:))。
非常感谢!
【问题讨论】:
-
在某种程度上取决于搜索字符串的长度与搜索字符串的长度、字母的大小以及您将执行的搜索次数。
-
但是,如果您还没有测量性能问题,请不要担心......
标签: algorithm performance string search