javaString字符串中子字符串出现几次

为什么是13错哪了求教大神!!... 为什么是13 错哪了 求教大神!! 展开
 我来答
雪飞潇潇
2015-11-02 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:880万
展开全部
public class FindWords {
public static void main(String[] args) throws Exception {
String s = "天涯天涯";
String s1 = "天涯";
sysCount(s, s1);
}

private static void sysCount(String s, String s1) {
int count = 0;
int per = -1;//用于保存前一次的索引位置
for (int i = 0; i < s.length(); i++) {
if (s.indexOf(s1, i) != -1) {
if (s.indexOf(s1, i) != per) {//如果这次的找到的索引和上次不一样,那么才算一次
per = s.indexOf(s1, i);//记录这次找到的索引
count++;//次数+1;

}
}
// indexOf(String str, int fromIndex)
// 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
// 也就是说 比如 天涯天涯 中查找  天涯
// 第一次循环 天涯天涯 包含了天涯 出现次数1次,索引位置 0;
// 第二次循环 涯天涯 包含了天涯 出现次数2次,索引位置2;
// 第三次循环 天涯 包含了天涯 出现次数3次,索引位置还是2;
// 第四次循环 涯 没有查找到天涯,索引位置-1;
// 所以一定要判断 索引位置是否相同,相同就不要重复计算次数了
}
System.out.println("一共找到了" + count + "次:" + s1);
}
}

输出

一共找到了2次:天涯
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式