question_019-JAVA之Map之TreeMap案例

来源:互联网 发布:java message类 编辑:程序博客网 时间:2024/05/16 01:58

JAVA之


Map之


TreeMap案例


--------------------------------------------------

1)给定字符串,获取字符串中每一个字母出现的次数。

如下:




····················································


package cn.itcast_05;


import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;


/*
 * 需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
 * 
 * 分析:
 * A:定义一个字符串(可以改进为键盘录入)
 * B:定义一个TreeMap集合
 * 键:Character
 * 值:Integer
 * C:把字符串转换为字符数组
 * D:遍历字符数组,得到每一个字符
 * E:拿刚才得到的字符作为键到集合中去找值,看返回值
 * 是null:说明该键不存在,就把该字符作为键,1作为值存储
 * 不是null:说明该键存在,就把值加1,然后重写存储该键和值
 * F:定义字符串缓冲区变量
 * G:遍历集合,得到键和值,进行按照要求拼接
 * H:把字符串缓冲区转换为字符串输出
 */
public class TreeMapDemo {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个字符串:");
String line = sc.nextLine();


// 定义一个TreeMap集合

 //  Character 和Char的区别,基本类型和引用类型
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();  

//把字符串转换为字符数组
char[] chs = line.toCharArray();

for(char ch : chs){

//拿刚才得到的字符作为键到集合中去找值,看返回值
Integer i =  tm.get(ch);

//是null:说明该键不存在,就把该字符作为键,1作为值存储

if(i == null){

tm.put(ch, 1); // 放入map集合中

}else {    // 不是null:说明该键存在,就把值加1,然后重写存储该键和值

i++;

tm.put(ch,i);
}
}

// 字符串的遍历和拼接

StringBuilder sb=  new StringBuilder();

//遍历集合,得到键和值
Set<Character> set = tm.keySet();
for(Character key : set){
Integer value = tm.get(key);
sb.append(key).append("(").append(value).append(")");
}


String result = sb.toString();
System.out.println("result:"+result);
}
}


··············结果·························


请输入一个字符串:
wanmeishijie123
result:1(1)2(1)3(1)a(1)e(2)h(1)i(3)j(1)m(1)n(1)s(1)w(1)


···········································


0 0