#需求:
输入字符:abcdeabcde 输出:a(2)b(2)c(2)d(2)e(2);
#分析:
##步骤:
A:输入一个字符串
B:定义一个TreeMap集合,健:Charater 值:Integer
C:把字符串转为字符数组
D:遍历字符数组,得到每一个字符
E:刚得到的字符作为键到集合中去找,看返回值,是null说明该字符在集合中不存在,将该字符作为键添加进集合中,并将其值置为1
F:定义字符串缓冲区
G:遍历集合得到键和值,按照要求拼接
H:将缓冲区中的字符串输出
完整代码:
import java.util.TreeMap;
import java.util.Set;
import java.util.Scanner;
public class TreeMapDemo{
public static void main(String[] args){
//A:输入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
//B:定义一个TreeMap集合,键:Charater 值:Integer
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
//C:将字符串转换为字符数组
char[] chs = line.toCharArray();
//D:遍历字符串数组,得到每一个字符
for(char ch:chs){
Integer i = tm.get(ch);
if(i == null){
//该字符作为键去集合中找,如果返回值是null,说明该键不存在,将该字符作为键,将其值置为1
tm.put(ch,1);
}else{
//如果不是null,则将其值加1,然后存放
i++;
tm.put(ch,i);
}
}
//E:定义一个字符串缓冲区
StringBuffer sb = new StringBuffer();
//F:按照指定的格式拼接
Set<Character> set = tm.keySet();
for(Character key:set){
Integer value = tm.get(key);
sb.append(key).append("(").append(value).append(")");
}
//G:将其转换为字符串
String result = sb.toString();
//H:将缓冲区的字符串输出
System.out.println("result:"+result);
}
}