java程序统计字符串中出现的所有字符,然后按照字符出现频率大小排序输出,频率相同时,按输入顺序输出。输出形式规定为每行输出4个字符数据,输出格式为:字符-出现次数。每个字符-出现次数输出中间用一个空格分隔,点也算字符,每行末尾没有空格。程序输出结尾有一个回车。
时间: 2023-04-12 07:01:07 浏览: 118
java中对字符串每个字符统计的方法
5星 · 资源好评率100%
以下是一个Java程序,可以实现统计字符串中出现的所有字符,并按照字符出现频率大小排序输出,频率相同时,按输入顺序输出。输出格式为每行输出4个字符数据,输出格式为:字符-出现次数。每个字符-出现次数输出中间用一个空格分隔,点也算字符,每行末尾没有空格。程序输出结尾有一个回车。
```
import java.util.*;
public class CharFrequency {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
List<Map.Entry<Character, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
if (o1.getValue().equals(o2.getValue())) {
return o1.getKey().compareTo(o2.getKey());
} else {
return o2.getValue().compareTo(o1.getValue());
}
}
});
int count = 0;
for (Map.Entry<Character, Integer> entry : list) {
System.out.print(entry.getKey() + "-" + entry.getValue() + " ");
count++;
if (count % 4 == 0) {
System.out.println();
}
}
System.out.println();
}
}
```
阅读全文