java编程:控制台输入一个字符串,要求按照字符出现的次数排序,排序时去掉重复字符!

木有人....
有做完的我加悬赏100

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

public class Test{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String cnt = s.nextLine();
ArrayList<Character> array = new ArrayList<Character>();
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
//--------这里是计算字符出现次数并记录↓----------
for (int i = 0; i < cnt.length(); i++) {
char tmp = cnt.charAt(i);
if(map.containsKey(tmp)){
int num = map.get(tmp);
num++;
map.put(tmp, num);
}else{
map.put(tmp, 1);
array.add(tmp);
}
}
//-----下面就是个冒泡--------
for (int i = 0; i < array.size(); i++) {
for (int j = 0; j < array.size()-1-i; j++) {
if(map.get(array.get(j))>map.get(array.get(j+1))){
char tmp = array.get(j);
array.set(j, array.get(j+1));
array.set(j+1, tmp);
}
}
}
System.out.println(map);//这个就是打印字符出现的次数
System.out.println(array);//这个打印排序后的数组,从小到大
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-11
等等,正在写……