A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.*;
  2. public class MapTest2
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 String s = print("asfkjahfjkkslhfkjshfaskjhf");//建立对象S指向方法调用之后的字符串
  7.                 System.out.println(s);//打印字符串
  8.         }
  9.         public static String print(String str)
  10.         {
  11.                 char[] chs =str.toCharArray();//将字符串转化为字符数组
  12.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();//建立一个字符和整型类型的集合
  13.                 int count = 0;//定义一个计数器
  14.                 for(int x=0;x<chs.length;x++)//从字符数组从头到尾遍历
  15.                 {
  16.                         Integer value =tm.get(chs[x]);//定义出value
  17.                         if(value!=null)
  18.                                 count = value;//当这一对元素没出现过时,将value赋给count
  19.                         count++;
  20.                         tm.put(chs[x], count);//然后第一次为1 以后依次增加  
  21.                         count=0;                        //租后将计数器重新归0
  22.                 }
  23.                 StringBuilder sb =new StringBuilder();//定义一个StringBuilder来操控字符串
  24.         Set<Character> keySet = tm.keySet();//set集合具有迭代器可以进行遍历
  25.         Iterator<Character> it = keySet.iterator();//定义迭代器
  26.         while(it.hasNext())//遍历开始
  27.         {
  28.                 char ch =it.next();//获取key
  29.                 Integer value = tm.get(ch);//获取value
  30.                 sb.append(ch+"("+value+")");//在原有的字符串后面添加新的字符串
  31.                
  32.                
  33.         }
  34.          
  35.                 return sb.toString();//返回一个字符串
  36.         }
  37. }

  38. a(3)f(5)h(4)j(4)k(5)l(1)s(4)
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马