六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 49|回复: 0

对字符串中字符出现的次数进行排序

[复制链接]

升级  10.8%

386

主题

386

主题

386

主题

探花

Rank: 6Rank: 6

积分
1216
 楼主| 发表于 2013-1-27 04:45:04 | 显示全部楼层 |阅读模式
<div class="highlighter">

  • import java.util.ArrayList;
  • <span />import java.util.Collections;
  • <span />import java.util.HashMap;
  • <span />import java.util.List;
  • <span />import java.util.Map;
  • <span />
  • <span />/**
  •  * 对字符集中字符出现的次数继续排序。
  •  * 
  •  * @author 赵学庆 www.java2000.net
  •  */<span />
  • public class T {
  •   public static void main(String args[]) {
  •     String str = "12345678hfdjkslahfkj932189oiefsjkar94werfdsf";
  •     Map<Character, KeyValue> map = new HashMap<Character, KeyValue>();
  •     char c;
  •     KeyValue kv = null;
  •     for (int i = 0; i < str.length(); i++) {
  •       c = str.charAt(i);
  •       kv = map.get(c);
  •       if (kv == null) {
  •         kv = new KeyValue();
  •         kv.ch = c;
  •         kv.count = 1;
  •         map.put(c, kv);
  •       } else {
  •         kv.count++;
  •       }
  •     }
  •     List<KeyValue> list = new ArrayList<KeyValue>(map.values());
  •     Collections.sort(list);
  •     for (KeyValue o : list) {
  •       System.out.println(o.ch + "=" + o.count);
  •     }
  •   }
  • }
  • <span />
  • <span />class KeyValue implements Comparable {
  •   public int compareTo(Object obj) {
  •     if (obj instanceof KeyValue) {
  •       KeyValue kv = (KeyValue) obj;
  •       return kv.count - this.count;
  •     }
  •     return -1;
  •   }
  • <span />
  •   char ch;
  • <span />
  •   int count;
  • }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表