继往开来 吐故纳新
日历
网志分类
· 所有网志 (990)
· 个人作品 (62)
· 软件设计 (33)
· 面向对象编程 (22)
· JavaAPI (39)
· Java开源工具 (31)
· Swing (34)
· Java语法细节 (39)
· 样式表CSS (12)
· XML (10)
· J2EE(JavaEE) (23)
· 算法数据结构 (64)
· 正则表达式 (4)
· 软件知识 (6)
· Java线程 (9)
· Web开发.Jsp/Servlet/Struts (20)
· 程序随想录 (7)
· Spring (5)
· Hibernate (7)
· J2SE 高级 (2)
· J2SE 高级 (0)
· Web开发.Ajax (16)
· Web开发.JavaScript (43)
· DB4O (2)
· Web开发.CSS/Html (22)
· C# (20)
· ERP (4)
· JDBC (1)
· 编程资源 (16)
· 编程感悟 (29)
· DB/Sql (13)
· VB (29)
· VC (2)
· 桌面脚本 (3)
· 新兴软件 (3)
· 英语学习 (21)
· 网文转载 (159)
· 职场风云 (39)
· 诗词歌赋 (32)
· 生活感言 (77)
· 奇文共赏 (13)
· 财经纵横 (6)
· 未分类 (11)
站内搜索
友情链接
· 歪酷博客
· 我的歪酷 非非共享界
· 偶要雷锋
· 豆瓣
· nczonline
· 当当网
· easyjf中文站
· Donews
· 天极Java文章列表
· W3CSchool
· taiten的BLOG
· Dojo中国
· Dojo
· Extjs.com
· Lifehack中文网志
· JaveEye的一个AS专题
· Banq's JDon
· Java 中文网址大全
· 梦想Java
· 360Doc个人图书馆
· java开源大全
· 我在硅谷动力的软件下载站
· 站长中国
· 随意贴
· CSS教学素材站
· java 参考中文站
· 面向构件与SOA社区
· 彩字生成
· 派派小说论坛
· 如坐春风
· 英语学习网
· BBC CHina
· www.dlbang.com
· 古文竖排格式在线转化工具
· 免费家谱
· 图片上传基地
· 风景壁纸
· 和风细雨
· MyC#BlogInCsdn

订阅 RSS

0207517

歪酷博客

开此博一为经验积累,二为资料收集,三为同道交流,四为资源共享.
« 上一篇: 【整理】关于保持上传文本格式的问题. 下一篇: 【原创】从一个例子的重构过程到Spring的IoC之使用 »
Junglesong @ 2006-10-12 22:55

http://www.javaeye.com/topic/27172?page=1
有一个帖子,楼主提到:

有一个List
内容如下:
a,b,b,b,c,c,d

想通过一种方法得到一个这样的串;
a;b*3;c*2;d
方法是有但是想寻求最简洁的实现。 

我是这样做的,感觉还有点意思,拿出来大家分享一下,大家有什么宝贵意见请提出来:

这是打印函数

public static void printSum(ArrayList list){
  Collections.sort(list);

  String curr="";
  String last="";
  WordCount wc=null;
 
  for(int i=0;i<list.size();i++){
    curr=(String)list.get(i);
   
    if(i==0){
      wc=new WordCount(curr,1);
      last=curr;
      continue;
    }
   
    if(curr.equals(last)){
      wc.increaseCount();
    }
    else{
      wc.print();
      wc.changeWord(curr);
    }
   
    last=curr;
  }

  wc.print();
}
 
这是WordCount类
public class WordCount{
  private String word;
  private int count;
 
  public WordCount(String word,int count){
    this.word=word;
    this.count=count;
  }
 
  public void increaseCount(){
    count=count+1;
  }
 
  public void print(){
    System.out.println(word+"*"+count);
  }
 
  public void changeWord(String newWord){
    word=newWord;
    count=1;
  }
 
  public int getCount() {
    return count;
  }
  public void setCount(int count) {
    this.count = count;
  }
  public String getWord() {
    return word;
  }
  public void setWord(String word) {
    this.word = word;
  }
}

这是调用部分:
  public static void main(String[] arg){ 
    ArrayList list=new ArrayList();
   
    list.add("a");
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("c");
    list.add("e");
    list.add("天朝");
    list.add("天朝");
    list.add("天朝");
    list.add("鸡屁国");
    list.add("南棒棒");
    list.add("北棒棒");
    list.add("阿妹例假国");
    list.add("公鸡国");
    list.add("罗撒国");
    list.add("阿妹例假国");
    list.add("阿妹例假国");
    list.add("天朝");
    list.add("天朝");
    list.add("天朝");
    list.add("北棒棒");
   
    printSum(list);
  }
 
输出结果如下:
a*2
b*1
c*2
e*1
公鸡国*1
北棒棒*2
南棒棒*1
天朝*6
罗撒国*1
阿妹例假国*3
鸡屁国*1





最新评论


蔡国良

2006-12-04 12:29

哥哥加油啊,我也会努力的


2006-12-08 19:25 网址: http://junglesong.ycool.com/

谢谢鼓励,有空联系.



chen

2007-02-24 10:29 匿名 218.25.*.*

你也用gamil的邮箱么??


2007-02-24 13:44 网址: http://junglesong.ycool.com/

都用,Foxmail相对方便一点,Gmail打开要一会,所以163邮箱用得多些.


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定