查找字符串中的字母出现多少次

时间:2022-07-01 06:21:22
package exercise;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/*A:定义一个字符串
B:定义一个TreeMap
键:Character
值:Integer
C:把字符串转换为字符数组
D:遍历字符数组,得到每一个字符
E:那得到的字符作为键到集合中去找值,看返回值
F:定义字符串缓冲区变量
G:遍历集合,得到键和值,进行按照要求拼接
H:把字符串缓冲区转换为字符串输出。*/

public class TreeMapDemo1 {
public static void main(String[] args) {
// A:定义一个字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = scanner.nextLine();
// 定义一个TreeMap
TreeMap<Character, Integer> tmMap = new TreeMap<Character, Integer>();
// C:把字符串转换为字符数组
char[] chs = line.toCharArray();
// 遍历字符数组,得到每一个字符
for (char ch : chs) {
// E:那得到的字符作为键到集合中去找值,看返回值

Integer i = tmMap.get(ch);

if (i == null) {
tmMap.put(ch, 1);
} else {
i++;
tmMap.put(ch, i);
}
}
// F:定义字符串缓冲区变量
StringBuilder sBuilder = new StringBuilder();
// G:遍历集合,得到键和值,进行按照要求拼接
Set<Character> set = tmMap.keySet();

for (Character key : set) {
Integer value = tmMap.get(key);
sBuilder.append(key).append("(").append(value).append((")"));
}
// H:把字符串缓冲区转换为字符串输出
String result = sBuilder.toString();
System.out.println("result:" + result);
}

}

运行结果:

查找字符串中的字母出现多少次