posts - 8,  comments - 11,  trackbacks - 0

import java.util.*;
/*
 * @author  诗语江南
 * @function  统计字符串中的重复部分并整理输出,
 *      我用了两种方法来做.
 */
public class StrShowTimes{
 public static void main(String[] r){
  String str = "帅哥,美女,帅哥,野兽,美女,帅哥";

  Map s1 = strTimesWithMap(str);
  Set keys = s1.keySet();
  Iterator it = keys.iterator();
  while(it.hasNext()){
   String key  = (String)it.next();
   int value = (Integer) s1.get(key);
   System.out.print(key + ": " + value+ ", ");
  }
  System.out.println();
  
  strTimesWithArray(str);
 }

 //使用HashMap的方法,该方法比较简单
 public static Map strTimesWithMap(String str){
  //key: 子字符串 String , value: 重复次数 Integer
  Map strMap = new HashMap();
  String[] strArr = str.split(",");
  for(int i =0; i< strArr.length ; i++){
   String key = strArr[i] ;
   if(strMap.containsKey(key)){
    int value = (Integer) strMap.get(key);
    strMap.put(key,++value);
   }else{
    strMap.put(key,1);
   }   
  }  
  return strMap;
 }

 //使用双数组的方法,一个字符串数组存字符串
 //一个整形数组存与字符串数组对应位置上的字符串出现的次数
 public static void strTimesWithArray(String str){
  String[] tempArr = str.split(",");
  int i , end = 0 , len = tempArr.length;
  String[] strArr = new String[len];
  int[] intArr = new int[len];
  boolean isChange ;
  for(i = 0 ; i < len ; i++){
   isChange = false;
   for(int j = 0 ; j < end ; j++){  
    if(tempArr[i].equals(strArr[j])){
     intArr[j] = intArr[j] +1 ;
     isChange = true;   
     break;
    }      
   }
   if(isChange) continue;
   strArr[end] = tempArr[i];
   intArr[end++] = 1; 
  }
  for(i = 0 ; i < end ; i++){
   System.out.print(strArr[i] + ": " + intArr[i] + " ");
  }
 }

}

posted on 2007-10-05 13:36 诗语江南 阅读(1669) 评论(3)  编辑  收藏 所属分类: Core JAVA

FeedBack:
# re: 统计字符串中的重复部分并整理输出[未登录]
2007-10-05 21:37 | xmlspy
这个东西如果自己研究研究还好,
如果使用的话,加以用common-lang中的StringUtils.java
当中大部分的String操作都有了  回复  更多评论
  
# re: 统计字符串中的重复部分并整理输出
2008-11-24 19:04 | ff
ff  回复  更多评论
  
# re: 统计字符串中的重复部分并整理输出
2008-11-24 19:12 | hello3180
小弟在浏览网页时 突然看到阁下您写的 统计字符串中的重复部分并整理输出
的java程序特别地兴奋 十分期待能向阁下“取经”。QQ:137206889  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(2)

随笔分类

随笔档案

友情连接

搜索

  •  

最新评论

阅读排行榜

评论排行榜