统计英文原文中26个字母(不区分大小写)的出现次数,按照字母出现次数的高低排序,在控制台打印出各字母及其出现次数。用java语言
时间: 2023-12-19 09:06:18 浏览: 49
好的,以下是Java代码实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入英文原文:");
String text = scanner.nextLine().toLowerCase(); // 转为小写,方便统计
Map<Character, Integer> countMap = new HashMap<>(); // 统计字母出现次数的Map
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c >= 'a' && c <= 'z') { // 只统计字母
int count = countMap.getOrDefault(c, 0) + 1;
countMap.put(c, count);
}
}
// 将Map转为数组,方便排序
Character[] letters = countMap.keySet().toArray(new Character[0]);
Integer[] counts = countMap.values().toArray(new Integer[0]);
// 冒泡排序
for (int i = 0; i < counts.length; i++) {
for (int j = 0; j < counts.length - i - 1; j++) {
if (counts[j] < counts[j + 1]) {
int temp = counts[j];
counts[j] = counts[j + 1];
counts[j + 1] = temp;
char tempChar = letters[j];
letters[j] = letters[j + 1];
letters[j + 1] = tempChar;
}
}
}
// 打印结果
System.out.println("各字母及其出现次数(按出现次数从高到低排序):");
for (int i = 0; i < letters.length; i++) {
System.out.println(letters[i] + ": " + counts[i]);
}
}
}
```
运行程序,输入英文原文后,即可看到统计结果。