获取字符串中每⼀个字母出现的次数。要求返回结果格式是:a(1)b(2)d(4)...; 1) 使用Scanner函数输入字符串 2) 使用toCharArray转化为字符串 3) 创建TreeMap存放字母和字母出现的次数,字母和次数有对应关系。结果要求abc...是有序的,所以使⽤TreeMap。 4) 获取字符串中的每⼀个字母。⽤字母查表,如果查到了字母对应的次数,就将这个次数+1后重新存回到表中。如果没有查到就将字母和1存到表中。 5) 每⼀个字母都查完表后,表中记录的就是所有字母出现的次数。
时间: 2024-03-05 20:51:34 浏览: 6
好的,以下是代码实现:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
// 输入字符串
Scanner scanner = new Scanner(System.in);
System.out.print("请输入字符串:");
String str = scanner.nextLine().toLowerCase(); // 转为小写方便统计
// 转为字符数组
char[] chars = str.toCharArray();
// 使用 TreeMap 存放字母和字母出现的次数
TreeMap<Character, Integer> map = new TreeMap<>();
// 遍历字符数组,统计每个字母出现的次数
for (char ch : chars) {
if (Character.isLetter(ch)) { // 判断是否为字母
if (map.containsKey(ch)) { // 如果字母已经存在于 map 中,将其次数加 1
map.put(ch, map.get(ch) + 1);
} else { // 否则将字母添加到 map 中,并将其次数设为 1
map.put(ch, 1);
}
}
}
// 输出结果
StringBuilder result = new StringBuilder();
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
result.append(entry.getKey()).append("(").append(entry.getValue()).append(")").append(" ");
}
System.out.println(result.toString());
}
}
```
示例输入:
```
请输入字符串:Hello World!
```
输出结果:
```
d(1) e(1) h(1) l(3) o(2) r(1) w(1)
```