今天想起来以前这样一道题,我用map集合的方法再做一次
/*键盘录入一个字符串,统计每个字符出现的次数
例如:录入”bbabbccaacbbc”,输出a出现3次,b出现6次,c出现4次*/
代码如下
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Noname5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//键盘录入一个字符串
Scanner sc = new Scanner(System.in);
//将字符串赋值给变量s
String s =sc.nextLine();
//定义一个char类型数组,并把字符串导入这个数组
char[] arr = s.toCharArray();
//创建一个引用对象,HashMap集合
HashMap<Character,Integer> hm = new HashMap<>();
//使用增强for循环把数组内容添加到集合,
for (char c : arr) {
//再添加的时候,判断是否重复,并对出现次数进行统计
hm.put(c, hm.containsKey(c) ? hm.get(c) + 1 : 1);
}
//输出集合
System.out.println(hm);
//对这个集合进行遍历
StringBuilder sb = new StringBuilder();
for (Map.Entry<Character, Integer> en: hm.entrySet()) {
char key = en.getKey();
int value = en.getValue();
sb.append(key).append("出现").append(value).append("次").append(",");
}
System.out.println(sb.substring(0, sb.length()-1));
}
}