计算字符串Java数组中的每个字母字符

时间:2015-09-04 01:43:17

标签: java arrays

我有一个字符串数组。 (每个字符串只有一个字符,但为了使用扫描程序,我必须使它成为一个字符串数组,因为没有input.nextchar。) 我想找出数组中字母表中每个字母的数量,然后根据哪个字母最多创建if语句。 我该怎么做呢? 我是初学者,所以请以最简单的方式解释。 非常感谢能够提供帮助的任何人!

3 个答案:

答案 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会是一个好主意,因为他是初学者。

相关问题