程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java對字符串中字符出現的次數進行排序

Java對字符串中字符出現的次數進行排序

編輯:關於JAVA

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 對字符集中字符出現的次數繼續排序。
*
* @author 趙學慶
*/
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);
  }
 }
}
class KeyValue implements Comparable {
 public int compareTo(Object obj) {
  if (obj instanceof KeyValue) {
   KeyValue kv = (KeyValue) obj;
   return kv.count - this.count;
  }
  return -1;
 }
 char ch;
 int count;
}

運行結果

f=5
j=3
k=3
s=3
9=3
d=2
e=2
a=2
h=2
3=2
2=2
1=2
r=2
4=2
8=2
o=1
l=1
i=1
w=1
7=1
6=1
5=1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved