0

我想用最简单的代码获得所有 128 个符号 (ASCII) 的频率。没有进口。 我正在用 Java (Eclipse) 编写,开始时是这样的:

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

然后我想用一个循环(最好是for循环)计算每个符号的频率。我知道如何为特定符号执行此操作,例如符号“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] - 仅适用于字符串(或字符?))为每个索引分配其编号,然后让循环写出所有符号频率。所有这些都应该只通过循环和命令来完成:.length、charAt()。

4

2 回答 2

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]++;
}
于 2013-11-09T22:31:37.997 回答
0

(回应user2974951的“回答”)

那是数组的字符串表示。尝试使用循环打印:

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

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

于 2013-11-10T08:55:13.393 回答