我希望用最简单的代码获得所有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()。
答案 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字符,这看起来有点难看。