例:现有如下文本:"Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的"。请编写程序,统计该文本中"Java"一词出现的次数。
方法一:常规做法(for循环遍历+if判断语句逐层判断)
代码如下:
public static int javaCount(String str) {
//创建计数器
int count = 0;
//遍历字符串
for (int i = 0; i < str.length(); i++) {
//找到首字母为J
if(str.charAt(i)=='J'){
if(str.charAt(i+1)=='a'){
if(str.charAt(i+2)=='v'){
if(str.charAt(i+3)=='a'){
count++;
}
}
}
}
}
return count;
}
方法二:sunstring()方法得索引+substring()方法截取
代码如下:
public static int javaCount2(String str) {
//创建计数器记录“java”一词出现的次数
int count = 0;
//创建索引 赋值-1的原因:下indexOf()面方法不存在返回索引-1
int index=-1;
//用indexOf()方法判断"Java"是否存在,存在的话得出索引
while((index=str.indexOf("Java"))!=-1){
index=str.indexOf("Java");
count++;
//sunstring()方法截掉第一个出现的"java" 位置:字符串索引index到"Java"的长度的数据
str=str.substring(index+"java".length());
}
return count;
}
方法三:reserve("被替换的字符","将要替换成的字符")方法替换掉"Java"+字符串长度相减
代码如下:
public static int javaCount3(String str) {
//创建计数器记录"Java"出现的次数
int count = 0;
//replace()方法将数组内的"Java"去掉(替换为空)
String newstr=str.replace("java","");
//原字符串的长度减去新字符串的长度
count=str.length()-newstr.length();
return count;
}