在输入一串字符串时,在该字符串中会有个别小字符串重复出现,那么我们需要一个程序来经计算出该小字符串出现的次数:
首先我们可以先分析一下:
A:定义统计变量
B:先在大串中找小串出现的索引,如果是 -1:说明不存在,返回统计变量
索引不是-1,统计变量+1
C:把刚才的索引+小串的长度作为开始截取上一次的大串,返回新的字符串,把新字符串从新赋值给自身
D:回到B
输入代码并运行:
public class Test0 {
public static void main(String[] args) {
String maxString="javajavajiaaaaaaaaaaa";
String minString="java";
int count = getCount(maxString, minString);
System.out.println("Java在大串中出现了:" + count + "次");
}
public static int getCount(String maxString, String minString) {
//定义一个统计变量
int count = 0;
//先在大串中查找小串第一次出现的位置
int index = maxString.indexOf(minString);
while (index != -1) {
count++;
//把刚才是index 的索引+小串的长度作为开始位置截取上一次的大串
int startIndex = index + minString.length();
maxString = maxString.substring(startIndex);
//继续查找
index = maxString.indexOf(minString);
}
return count;
}
}
例如在“woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”
这串字符中"java"出现的次数
运行代码可以得到为5次;
以上代码过于太长,由此我们也可可以简化一下
package String;
import java.util.Scanner;
public class ad {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请录入一个大字符串:");
String max = sc.nextLine();
System.out.println("请输入一个小字符串:");
String min = sc.nextLine();
String str = max.replace(min, "");
int i =(max.length() - str.length()) /min.length() ;
System.out.println("小串字符"+min+"在大串字符"+max+"中共出现" +i + "次");
System.out.println(str);
}
}
输出结果是一样的。