public class Rr {
public static void main(String[] args) {
Count("asdfsdfsfsss");
}
public static void Count(String s){
int[] app = new int['z' + 1];  /
for (int i = 0; i < s.length(); i++)
app[s.charAt(i)]++;  /
for (int i = 0; i < app.length; i++) {
if (app[i] != 0) {  /
System.out.println("字符:" + (char) i + "出现了" + app[i] + "次");
}
}
}
}
主要就是我叫了标注的那3行  还有 如果我只想显示是频率出现最高的那个字母的那一句应该怎么改

解决方案 »

  1.   

    主要是 int[] app = new int['z' + 1];  / 
       不是很理解
      

  2.   

    int[] app = new int['z' + 1]; 
    'z'与int类型相连,转换为int类,在字符表中,找到'z'的对应的数值将其相加。
      

  3.   


    public class Rr {
    public static void main(String[] args) {
    Count("asdfsdfsfsss");
    } public static void Count(String s) {
    int[] app = new int['z' + 1]; // 
    String tc="";
    int t=0;
    for (int i = 0; i < s.length(); i++){
    app[s.charAt(i)]++; //
    if(app[s.charAt(i)]>t){
    t=app[s.charAt(i)];
    tc=""+s.charAt(i);
    }
    }
    for (int i = 0; i < app.length; i++) {
    if (app[i] != 0) { //
    System.out.println("字符:" + (char) i + "出现了" + app[i] + "次");
    }
    }
    System.out.println("出现频率最高的字符是"+tc+",一共出现了"+t+"次");
    }
    }这样对吗?
      

  4.   

    用'z'+1是为了不让数组下标越界,'z'转成int是122,这样在后面使用app[s.charAt(i)]时就不会出现异常了。
      

  5.   

    。app[s.charAt(i)]++ 
    s.charAt(i)返回一个字符 然后++ 没看懂