美文网首页
统计字符串中单个字符的个数

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

作者: cmeizu | 来源:发表于2018-11-06 17:57 被阅读0次

    #需求:

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

    }

    }

    相关文章

      网友评论

          本文标题:统计字符串中单个字符的个数

          本文链接:https://www.haomeiwen.com/subject/wxnuxqtx.html