键盘输入一串字符串,获取字符串中每一个字母出现的次数 例如输入字符串为"aababcabcdabcde",则统计结果为: a(5)b(4)c(3)d(2)e(1):a(5)b(4)c(3)d(2)e(1) 使用TreeSet的构成与使用方法进行编程 给出具体代码
时间: 2024-05-03 08:17:19 浏览: 53
以下是Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = sc.nextLine();
Map<Character, Integer> map = new HashMap<>();
for (char c : str.toCharArray()) {
if (Character.isLetter(c)) {
map.put(c, map.getOrDefault(c, 0) + 1);
}
}
TreeMap<Character, Integer> treeMap = new TreeMap<>(map);
StringBuilder sb = new StringBuilder();
for (Map.Entry<Character, Integer> entry : treeMap.entrySet()) {
char key = entry.getKey();
int value = entry.getValue();
sb.append(key).append("(").append(value).append(")");
}
sb.append(":");
for (Map.Entry<Character, Integer> entry : treeMap.entrySet()) {
char key = entry.getKey();
int value = entry.getValue();
sb.append(key).append("(").append(value).append(")");
}
System.out.println(sb.toString());
}
}
```
首先使用 `Scanner` 获取用户输入的字符串,然后使用 `HashMap` 统计每个字母出现的次数。注意只统计字母,因此需要使用 `Character.isLetter()` 方法进行判断。
接着将统计结果放入 `TreeMap` 中进行排序,然后使用 `StringBuilder` 拼接成要输出的字符串。最后输出即可。
注意,由于题目要求输出格式为 `a(5)b(4)c(3)d(2)e(1):a(5)b(4)c(3)d(2)e(1)`,因此需要分两次遍历 `TreeMap` 进行拼接。
阅读全文