【发布时间】:2020-02-20 15:20:06
【问题描述】:
例如,给定一个单词,我必须按该单词中出现的次数对其字母进行排序,如果 2 个字母出现相同的次数,它将按词典最小值排序。 现在,我已经开始查看一个字母在一个单词中出现了多少次,但从这里我不知道该怎么做。 该问题需要我使用 BufferedReader 和 BufferedWriter。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map<Character, Integer> m = new HashMap<>();
String s = sc.nextLine();
for (int i = 0; i < s.length(); ++i) {
char c = s.charAt(i);
if (m.containsKey(c))
m.put(c, m.get(c) + 1);
else
m.put(c, 1);
}
for (char letter = 'a'; letter <= 'z'; ++letter)
if (m.containsKey(letter))
System.out.println(letter + ": " + m.get(letter));
}
目前我正在发布单词中最常出现的字母,但我不知道如何按出现次数对它们进行排序,以防有两个字母出现的次数相同且最少字典序。
【问题讨论】:
-
真的有理由使用缓冲写入器吗?
-
在问题中添加一些示例,即输入 -> 输出。这样你就可以更好地澄清问题。
-
相关/相同的课程/问题:Sort the letters of a word(同一个人:STRKLok?相同的代码???)
标签: java bufferedreader bufferedwriter