今天看了<<字符串高级截取和统计>>
(链接:http://www.cnblogs.com/leadwit/archive/2008/10/27/1320326.html)就简单地回复了一句用正则表达式可以实现,下午再看看别人的评论,很多人都对这个实现有很多看法,觉不好,其实我觉得用正则表达实现应该是比较的,由于原C#不是很孰,所以我用java他的基本功能,下面是代码:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->import java.util.regex.*;
public class SubString{
public static void main(String[] args){
String str = "abcdefghdefkekkdefddf";
String searchStr = "def";
System.out.printf("一共出现%d次",subStr(str,searchStr));
}
public static int subStr(String str,String searchStr){
int i = 0;
Pattern p = Pattern.compile(searchStr);
Matcher m = p.matcher(str);
while(m.find()){
i++;
System.out.printf("第%d次出现的位置:"+(m.start()+1)+"\n",i);
}
return i;
}
}
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/e90fada301d955a47569db3efc7c26fe.jpeg)