黑马程序员技术交流社区

标题: 关于 取出一个字符串中字母出现的次数的问题 [打印本页]

作者: 天之饺子    时间: 2015-9-18 00:06
标题: 关于 取出一个字符串中字母出现的次数的问题
需求:取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...

两种方法写的 大家一起来看看还有其他方法没有?
  1. import java.util.*;

  2. public class Test1 {

  3.         public static void main(String[] args) {
  4.                 String str = "abcdekka27qoq";
  5.                 PanDuan(str);
  6.                 //useMapPanDuan(str);
  7.                
  8.         }
  9.        
  10.         public static void PanDuan(String str){
  11.                 int i = 0,x=0,y,m;
  12.                 for(y='a'; y<='z'; y++){
  13.                         m=-1;
  14.                         do {
  15.                                 x = str.indexOf(y, i);
  16.                                 i=x+1;
  17.                                 m++;
  18.                                 //System.out.println("m="+m+",i="+i+",x="+x);
  19.                         } while (x!=-1);
  20.                         if(m!=0){
  21.                                 System.out.print((char)y+"("+m+")");
  22.                         }
  23.                        
  24.                 }
  25.                 System.out.println("");
  26.         }
  27.         public static void useMapPanDuan(String str){
  28.                 TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
  29.                 char[] chs = str.toCharArray();
  30.                 Set<Character> s = tm.keySet();
  31.                 for(Character ch:chs){
  32.                         if(ch>='0'&&ch<='9')
  33.                                 continue;
  34.                         Integer i = tm.get(ch);
  35.                         if(i==null){
  36.                                 tm.put(ch,1);
  37.                         }else{
  38.                                 tm.put(ch,i+1);
  39.                         }
  40.                 }
  41.                 StringBuilder sb = new StringBuilder();
  42.                 for(Character ch1: s){
  43.                         sb.append(ch1).append("(").append(tm.get(ch1)).append(")");
  44.                 }
  45.                 System.out.println(sb);
  46.         }
  47. }
复制代码

作者: 1406046710    时间: 2015-9-18 01:28
public class test1
{
        public static void main(String[] args){
               
                String str = "abcdekka27qoq";
                System.out.println("字符串:"+str);
                System.out.print("输出格式:");
                str = str.replaceAll("\\d+","");
                int start,end,num;
                char temp;
                while(!(str.isEmpty())){
                        temp=str.charAt(0);
                        start=str.length();
                        System.out.print(String.valueOf(temp));
                        str=str.replaceAll(String.valueOf(temp),"");
                        end=str.length();
                        num=start-end;
                        System.out.print("("+num+")");
                }               
        }               
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2