计算地图值的百分比

时间:2013-05-04 17:10:17

标签: java maps percentage


 我创建了一个程序,使用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),则它们的值都为零。为什么?我做错了什么?................谢谢

1 个答案:

答案 0 :(得分:2)

我要做的第一件事就是将百分比计算更改为:

int perc = (temp * 100)/cipherLetters.length;

鉴于您使用的是整数除法,(temp / cipherLetters.length)可能是zero