import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
//给定一个字符串,请输出该字符串有哪些字符组成,每个字符几次
public class Test2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入字符串:");
String str = scanner.nextLine();
// 方法一(Map)
Map<Character, Integer> counter = new HashMap<Character, Integer>();
// 统计 = 遍历
// 看每个字符是否是第一次出现,如果是,则记录出现次数为1.如果不是,则在原有的次数上加1
for (int i = 0; i < str.length(); i++) {
Character currentChar = str.charAt(i);
// 是否为第一次出现
if (!counter.containsKey(currentChar)) {
// 是
// !counter.containsKey(currentChar) ---> 从未出现过 == 第一次
counter.put(currentChar, 1);
} else {
// 否
// 出现过 == 不是第一次
int oldValue = counter.get(currentChar);
counter.put(currentChar, oldValue + 1);
}
}
System.out.println(str);
for (Map.Entry<Character, Integer> entry : counter.entrySet()) {
System.out.println(entry);
}
System.out.println("=================================");
// 方法二
for (int i = 0; i < str.length(); i++) {
if (str.indexOf(str.charAt(i)) == i) { //判断字符是否是第一次出现,是的话,统计次数
int count = 0;
for (int j = 0; j < str.length(); j++) {
if (str.charAt(j) == str.charAt(i)) {
count++;
}
}
System.out.println(str.charAt(i) + "出现了" + count + "次");
}
}
scanner.close();
}
}