给出一个字符串和要查询的字符或字符串,输出查询结果(字符出现次数和位置)
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段文字:");
String str = sc.next(); //字符串内容
System.out.println("请输入您要查询的字符:");
String search = sc.next(); //要查询的字符串
int index = str.indexOf(search); //获取第一次出现的位置
StringBuffer sb = new StringBuffer(""); //空白StringBuffer对象接收位置标记信息
int num = 0; //出现次数计数器
int i = index; //位置标记
if(index < 0){ //如果index = -1,说明要查询的内容不存在
System.out.println("您要查找的字符不存在");
}else{ //如果存在,StringBuffer添加一次位置信息,计数器+1
sb.append(i + ",");
num ++;
while(index >= 0){ //循环截取出现位置后的字符串再次判断是否存在(递归)
str = str.substring((index+1));
index = str.indexOf(search);
if(index < 0){ //不存在,退出循环
break;
}else{ //存在,位置标记更新为在原始字符串的实际位置,计数器更新
i = i + index + 1;
sb.append(i + ",");
num ++;
}
}
System.out.println("出现了" + num + "次,位置是" + sb.toString());
}