1个回答
展开全部
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次:天涯
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询