求高手!一个java小问题!

来源:百度知道 编辑:UC知道 时间:2024/05/12 17:23:38
输入一串字符,包含“A-Z”,长度不限,统计每一字母出现的次数,按照次数的多少排序输出。例如:
输入:SJDKFWJEFKLMFJJDFGYFDGHJ
输出:FJDGKEHLMSWY

public class Test
{
public static void main(String args[]){
String old="SJDKFWJEFKLMFJJDFGYFDGHJ";
int[] ch=new int[26];
for(int i=0;i<old.length();i++){
char c=old.charAt(i);
++ch[c-'A'];
}
for(int j=0;j<ch.length;j++){
int index=j;
int max=ch[j];
for(int k=0;k<ch.length;k++){
if(max<ch[k]){
index=k;
max=ch[k];
}
}
if(ch[index]>0)
System.out.print((char)(index+'A'));
ch[index]=0;
}
}
}

String s="aaaa" ;
s.length()得到字符串长度

然后
一个循环 从第一个开始扫描
得到一个个字符

创建一个链表 有现成的类 java.util.ArrayList

把字符加进去 元素包括2个内容 字符和出现次数
如果前面已经存在 就把出现次数加一..如果没有 就插入新字符

以上工作 统计各字符的个数

然后输出
从字符出现最多的开始输出 输出了就在链表中删除那个字符的元素
然后重复这个过程 直到链表长度为0

10分..已经给你说得够详细了

public static void main(Strin