非常简单的标志频率

时间:2013-11-09 22:24:43

标签: java frequency sign

我希望用最简单的代码获得所有128个符号(ASCII)的频率。 没有导入。 我用Java(Eclipse)编写,从这开始:

public class Text {
public static void main (String[] args) {

然后我想用循环计算每个符号的频率(最好是循环)。我知道如何针对特定标志执行此操作,例如标志'a'是97:

int a = 0;
for (int i = 0; i < s.length(); i++) {             // s is a String
    if (s.charAt(i) == 'a') {
        a += 1;
    }
}
System.out.println("a: " + a);

我需要创建一个包含所有符号的表(例如int [] p = new int p [1,2,3] - 仅用于字符串(或char?))为每个索引分配其编号然后让循环写出所有符号频率。 所有这些只能通过循环和命令来完成:。length,charAt()。

2 个答案:

答案 0 :(得分:4)

简单地:

final String s = "Hello World!";
final int frequencies[] = new int[128];

for (int i = 0; i < s.length(); i++) {
    final int ascii = (int) s.charAt(i);
    frequencies[ascii]++;
}

答案 1 :(得分:0)

(响应user2974951的“回答”)

这是数组的String表示。请尝试使用循环打印:

for(int i = 0; i < frequencies.length; i++) {
    System.out.println(frequencies[i]);
}

你也可以试试System.out.println(Arrays.toString(frequencies));但是考虑到你正在考虑的大量ASCII字符,这看起来有点难看。