打印出字母的频率而不是多少次?

时间:2015-03-23 15:21:34

标签: java arrays frequency

我正在尝试更改我的代码,以便打印字母的频率而不是有多少字母。 “我是一个男人我是男人”应该给出与“我是男人”相同的答案,因为每个字母与整个序列的相对比例是相同的。

所以期望的输出是:

字母A:数:0.43
字母I:数:0.14
字母M:数:0.29
字母N:数:0.14

因此计数总是加起来为1.0。

目前,我的代码只计算并显示字母出现的次数,这是否很容易改变?

//

2 个答案:

答案 0 :(得分:0)

你可以尝试这样的方法来获得总字符的百分比:

int total = 0;
for(int i = 0; i < lettersArray.length; i ++)
{
    total += letterArray[i];
}

for (char characters = 'a'; characters <= 'z'; characters++) {
    int index = characters - 'a';
    //print out the analysis
    System.out.println("'" + characters + "' entered " + (((double)letterArray[index] / (double)total)) 
            + " times");
}}}

答案 1 :(得分:0)

System.out.println("'" + characters + "' entered " + letterArray[index] /         
                (double)line.length() + " times");