import java.util.Scanner;
//1、统计某种字符串中某个字符或某个字符串出现的次数,以及每次出现的索引位置
//* 有如下字符串:【"患者:“大夫,我咳嗽得很重。”
//* 大夫:“你多大年记?” 患者:“七十五岁。”
//* 大夫:“二十岁咳嗽吗”患者:“不咳嗽。”
//* 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。”
//* 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。
//* quit
//* 需求:得到quit字符串的时候退出,
//* 请统计出除quit字符串,该字符中“咳嗽”二字的出现次数,
//* 以及每次“咳嗽”出现的索引位置。
public class 字符串练习1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String temp;
StringBuffer sb = new StringBuffer();
while (!(temp = s.nextLine()).equals("quit")) {
sb.append(temp).append("\n");
}
String str = sb.toString();// 将新字符串存起来
int count = 0;
for (int i = 0; i < str.length() - 1; i++) {
if (str.charAt(i) == '咳' && str.charAt(i + 1) == '嗽') {
// 这里有一个bug是,入果判断的‘嗽’这个条件中,
// 字符串第i+1个元素不存在,那么就会出现数组越界的情况。
// 不过,此情况只要将str.length()改成str.length-1即可解决。
count++;
}
}
System.out.println("*******************************************************************");
System.out.println("字符索引位置:"+count);
}
}
运行结果
患者:“大夫,我咳嗽得很重。”
大夫:“你多大年记?” 患者:“七十五岁。”
大夫:“二十岁咳嗽吗”患者:“不咳嗽。”
大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。”
大夫:“那现在不咳嗽,还要等到什么时咳嗽?”
quit
*****************************************
字符索引位置:7