import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
/*思路:1.键盘录入一个字符串
2.建立一个以字符为键,出现次数为值的并且能排序的集合,所以用TreeMap
3.判断字符是否出现过(值是否为null),如为null,则设定值为1;
如不为null,则值+1;
4.遍历TreeMap
5.创建一个StringBuilder来存数组,并转化成字符串输出。
*/
public class ChaZiMu {
public static void main(String[] args) {
//创建一个键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个你要查询的字符串:");
String s = sc.nextLine();
//把字符串转化成字符数组
char[] ch =s.toCharArray();
//创建一个TreeMap集合:根据集合的值来是否为null来判断字符是否出现
TreeMap<Character,Integer> tr = new TreeMap<Character,Integer>();
for(char chs:ch){
//遍历字符数组,求出每个字符的值;
Integer i = tr.get(chs);
//没有出现过的字符,给他的值设置为1;
if(i==null){
tr.put(chs, 1);
}
//出现过的,给他的值设置为i+1;
else{
tr.put(chs, i+1);
}
}
//创建一个StringBuilder来存储集合中的字符以及它的出现次数
StringBuilder sb = new StringBuilder();
Set<Character> set = tr.keySet();
for(Character ch1: set){
Integer i = tr.get(ch1);
sb.append(ch1+"(").append(i+")");
}
//把StringBuilder转化成字符串并输出
System.out.println(sb.toString());
}
} |
|