编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并按照从大到小的顺序以柱状图的形式显示其出现次数,出现次数为0的不输出。java
时间: 2024-01-22 08:19:13 浏览: 90
以下是Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
// 统计小写字母出现次数
int[] count = new int[26];
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c >= 'a' && c <= 'z') {
count[c - 'a']++;
}
}
// 按照出现次数从大到小排序
List<Integer> list = new ArrayList<>();
for (int i : count) {
if (i > 0) {
list.add(i);
}
}
Collections.sort(list, Collections.reverseOrder());
// 输出柱状图
for (int i : list) {
for (int j = 0; j < 26; j++) {
if (count[j] == i) {
System.out.printf("%c %d ", j + 'a', i);
for (int k = 0; k < i; k++) {
System.out.print('#');
}
System.out.println();
}
}
}
}
}
```
样例输入:
```
Hello, world!
```
样例输出:
```
l 3 ###
o 2 ##
e 1 #
d 1 #
r 1 #
h 1 #
```
阅读全文