java 字符串处理急急急。。java 怎么统计一串字符串在整个字符串中出现的次数..没有分了,大师们帮帮忙。

比如有这么一段字符串。。Stringstr="abcd";//这是我要找的字符串。StringallStr="asdasabcdf//:asdaeeeeeeabcdooo... 比如有这么一段字符串。。

String str = "abcd"; //这是我要找的字符串。
String allStr = "asdasabcdf //:asd
aeeeeeeabcdooooo
bvbgffg/abcd/dfsdf";

我要统计出在这个 allStr 中 str 出现过多少次。该怎么做?

我目前有个不成熟的思路,先把这个allStr 写入文件,然后我在读这个文件,每读一行(readLine()) 就判断一次。看这一行中包不包行str 。包含的话,变量++;但是这样比较复杂,字符串一大效率就下来了。

哪位大师有没有好办法。指导一下我这只又嫩又菜的呆鸟。。。。。
展开
 我来答
百度网友9308069
2011-07-07 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:2311万
展开全部
上次写的,遍历一遍,算法效率 O(n) 的解决方法。
上次那个笨蛋没有采用,用了split浪费空间的办法。
希望这次你有眼光。
============
如果仅仅是'aaa'这样“固定长度、固定内容”的模板是不需要正则的,
public class Test{
public static void main(String[] args) {
String s="aaabbbcccaaaasdffe";
System.out.println("出现次数:"+countOccurances(s, "aaa"));
}
static public int countOccurances(String s,String p){
int count=0, pos=0, len_s=s.length(),len_p=p.length();
while(pos<len_s && (pos=s.indexOf(p,pos))!=-1){
count++;
pos+=len_p;
}
return count;
}
}
======
输出:
出现次数:2
唔製
2011-07-07 · TA获得超过1147个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:611万
展开全部
看代码吧
String str = "abcd"; //这是我要找的字符串。
String allStr = "asdasabcdf//:asd aeeeeeeabcdooooobvbgffg/abcd/dfsdf";
int sum = 0;
int index = 0;
while(true) {
index = allStr.indexOf( str, index);
if(index == -1) {
break;
}
sum++;
index += str.length();
}
System.out.println(sum);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式