统计字符串中单个字符的个数

2018-11-06  本文已影响0人  cmeizu

#需求:

输入字符: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);

}

}

上一篇下一篇

猜你喜欢

热点阅读