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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马-王燚 于 2012-10-5 00:35 编辑

取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...

老毕貌似用的是TreeMap做的,我这里自己有一个方法 是用数组做的 。贴出来大家分享分享,自我感觉我的方法还是很不错的 ,有扩展性呢,嘿嘿。
  1. import java.io.*;
  2. public class Test4
  3. {

  4.         /**        取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
  5.          * 输出格式为:a(2)b(1)k(2)...
  6.          *

  7.          * @param args
  8.          */

  9.         public static void main(String[] args) throws Exception
  10.         {
  11.                 // TODO 自动生成的方法存根
  12.                 InputStreamReader isr=new InputStreamReader(System.in);
  13.                 BufferedReader br=new BufferedReader(isr);
  14.                 sop("请输入一个字符串:");
  15.                 String s=br.readLine();
  16.                 sop(s);
  17.                 sop(countCharacter(s));
  18.         }
  19.         public static void sop(Object obj)  
  20.         {
  21.                 System.out.println(obj);
  22.         }
  23.         public static String countCharacter(String s)
  24.         {
  25.                 int count[]=new int[127];//统计每一个字符出现的次数

  26.                 for (int i = 0; i < s.length(); i++)
  27.                 {
  28.                         count[(int)s.charAt(i)]++;                  
  29.                 }
  30.                 String result="";
  31.                
  32.                  //输出  这里的K改成从0开始  就能连数字也一起统计了,其实是统计所有的ASCII码
  33.                 for (int k = 65; k < count.length; k++)  
  34.                 {
  35.                         if(count[k]!=0)
  36.                         {
  37.                                 //比如a是97 那就直接输入97
  38.                             result=result+(char)k+"("+count[k]+")"; //按格式输出 a(2)
  39.                         }
  40.                 }
  41.                 return result;
  42.         }
  43. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

0 个回复

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