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



我正在尝试更改我的代码,以便它打印字母的频率,而不是字母的数量。例如,"我是男人我是男人"应该给出与"我是女人"相同的答案,因为每个字母在整个序列中的相对比例是相同的。

因此,所需的输出将是:

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

因此,计数总是加起来为1.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");
}}}
System.out.println("'" + characters + "' entered " + letterArray[index] /         
                (double)line.length() + " times");

相关内容