从输入框输入一个字符串,要求统计每一个字符出现的频率,并按照字母排序之后输出。频率=字符出现的次数/字符总数。提示:可以用HashMap。
时间: 2024-03-07 21:46:50 浏览: 46
好的,这是一个比较常见的编程问题。以下是Java语言的代码实现:
```java
import java.util.*;
public class CharFrequency {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
scanner.close();
Map<Character, Integer> map = new HashMap<>();
int total = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isLetter(c)) {
total++;
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
}
List<Character> list = new ArrayList<>(map.keySet());
Collections.sort(list);
for (char c : list) {
int count = map.get(c);
double frequency = (double) count / total;
System.out.printf("%c:%d,%.2f\n", c, count, frequency);
}
}
}
```
程序运行时,会提示用户输入一个字符串,然后使用HashMap统计每个字符出现的次数,最后按照字母排序并输出每个字符的出现次数以及频率。注意,这里只统计字母出现的频率,忽略其他字符。
希望这个代码可以帮助到你!
阅读全文