我有一个字符串,想要计算所有字母和数字的出现次数,并创建一个图表以便可以直观地查看出现情况。
例如:
String sentence = "ABC ABC ABC 123"
A (3) * * *
B (3) * * *
C (3) * * *
D
.
.
我的思路:
- 计算字符串中所有数字和字母的数量
- 打印所有星号,次数为该数字(不幸的是,在Java中我无法将一个String与int相乘)
我认为有两种计算字符数量的方法。我可以使用charAt()
方法或toCharArray()
并循环遍历字符串或数组并计算字母。
例如:
aCounter = 0;
bCounter = 0;
char ch = sentence.charAt(i);
for (i = 0; i < sentence.length(); ++i) {
if (ch == 'a') {
aCounter++;
}
if (ch == 'b') {
bCounter++;
}
}
然而,我对这种方法有多个问题:
- 我需要创建大量的计数器变量 - 从
aCounter
到zCounter
再到0counter
到9counter
- 我还需要再创建一个循环来打印星号!
我这里不是要求得出正确答案,只是想寻求一些好的方向,因为我现在陷入困境了。
map[character]++
即可。 - Marc BMap<Char, Integer>
或者数组,因为你知道字母和数字的总数。 - crushint[]
数组而不是产生HashMap
的开销。看看我的示例与HashMap
示例的性能表现会很有趣。 - crush