我有一个字符串数组。 (每个字符串只有一个字符,但为了使用扫描程序,我必须使它成为一个字符串数组,因为没有input.nextchar。) 我想找出数组中字母表中每个字母的数量,然后根据哪个字母最多创建if语句。 我该怎么做呢? 我是初学者,所以请以最简单的方式解释。 非常感谢能够提供帮助的任何人!
答案 0 :(得分:1)
您可以使用HashMap,其中键是字母,值是出现次数。例如:
Map<String, Integer> letterCount = new HashMap<String, Integer>();
for (String letter : letters) { //letters is your array of strings
if (letterCount.containsKey(letter)) {
letterCount.put(letter, letterCount.get(letter) + 1);
} else {
letterCount.put(letter, 1);
}
}
现在,您可以查看特定字母显示的次数:
int numberOfEs = letterCount.get("E");
您也可以通过调用letterCount.keySet()
来查看所有字母,以查看最常用的字母。
答案 1 :(得分:0)
为每个字符创建一个hashmap作为其键并计为其值。 (默认值为0)。 迭代你的字符串数组,从hashmap中获取每个字符,增加计数并将其设置回来。
在迭代结束时,你将全部计入字母字符。
然后继续进行进一步的编码。
如果需要,也可以根据值对hashmap进行排序。
答案 2 :(得分:0)
您尝试做的事情最好通过使用char数组来完成。
因此ASCII字符65-90代表字符A-Z。
将它转换为int将为您提供我相信的ASCII值。 你需要一个int数组来保存26个int。遍历您的数组,将每个int转换为它的ASCII值并递增该数组的索引。我没有尝试过,但我不明白为什么它不起作用。
最后,您将能够计算出每个字母的出现次数。
另外,我怀疑将他介绍给Collections会是一个好主意,因为他是初学者。