大家好,我是小新,我来为大家解答以上问题。阿萨德阿萨德阿萨德阿萨德阿萨德,asdasda很多人还不知道,现在让我们一起来看看吧!
1、import java.util.Scanner;
2、import java.util.Set;
3、import java.util.TreeMap;
4、/*
5、* 需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
6、*
7、* 分析:
8、* A:定义一个字符串(可以改进为键盘录入)
9、* B:定义一个TreeMap集合
10、* 键:Character
11、* 值:Integer
12、* C:把字符串转换为字符数组
13、* D:遍历字符数组,得到每一个字符
14、* E:拿刚才得到的字符作为键到集合中去找值,看返回值
15、* 是null:说明该键不存在,就把该字符作为键,1作为值存储
16、* 不是null:说明该键存在,就把值加1,然后重写存储该键和值
17、* F:定义字符串缓冲区变量
18、* G:遍历集合,得到键和值,进行按照要求拼接
19、* H:把字符串缓冲区转换为字符串输出
20、*
21、* 录入:linqingxia
22、* 结果:result:a(1)g(1)i(3)l(1)n(2)q(1)x(1)
23、*/
24、public class TreeMapDemo {
25、public static void main(String[] args) {
26、// 定义一个字符串(可以改进为键盘录入)
27、Scanner sc = new Scanner(System.in);
28、System.out.println("请输入一个字符串:");
29、String line = sc.nextLine();
30、// 定义一个TreeMap集合
31、TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
32、//把字符串转换为字符数组
33、char[] chs = line.toCharArray();
34、//遍历字符数组,得到每一个字符
35、for(char ch : chs){
36、//拿刚才得到的字符作为键到集合中去找值,看返回值
37、Integer i = tm.get(ch);
38、//是null:说明该键不存在,就把该字符作为键,1作为值存储
39、if(i == null){
40、tm.put(ch, 1);
41、}else {
42、//不是null:说明该键存在,就把值加1,然后重写存储该键和值
43、i++;
44、tm.put(ch,i);
45、}
46、}
47、//定义字符串缓冲区变量
48、StringBuilder sb= new StringBuilder();
49、//遍历集合,得到键和值,进行按照要求拼接
50、Set<Character> set = tm.keySet();
51、for(Character key : set){
52、Integer value = tm.get(key);
53、sb.append(key).append("(").append(value).append(")");
54、}
55、//把字符串缓冲区转换为字符串输出
56、String result = sb.toString();
57、System.out.println("result:"+result);
58、}
59、}
60、/***不懂里面的的一些方法的可以找本书看看Map集合方面的,还有学会查API,否则你一辈子都读不懂JAVA程序的,其实我这个不用分析的话应该是这个问题的最简解了吧。。。。***/
本文到此讲解完毕了,希望对大家有帮助。