我创建了一个程序,使用TreeMap(String,Integer)(名为alphaFreq)计算给定String中所有字母的出现次数。现在我想将这些事件表示为百分比([A = 12.3],[B = 3.0],......等),所以我创建了另一个TreeMap(String,Double)(命名百分比),用它们的值复制了所有键设置为零,并根据alphaFreq中的值编辑值,如下所示:
for(int i=0; i<26; i++){
int temp;
Character current = (char)(i+65);
String frog = current.toString();
temp = alphaFreq.get(frog);
int perc = (temp/cipherLetters.length)*100;
System.out.println(temp+"/"+cipherLetters.length+" = "+perc);
percentage.put(frog,(double)perc);
}
如果String全部为As或Bs,则结果是除A = 100.0或B = 100.0外,所有键的值均为零 但是如果String文本有任何其他组合(例如:DDJJSHHIEM),则它们的值都为零。为什么?我做错了什么?................谢谢
答案 0 :(得分:2)
我要做的第一件事就是将百分比计算更改为:
int perc = (temp * 100)/cipherLetters.length;
鉴于您使用的是整数除法,(temp
/ cipherLetters.length
)可能是zero
。