求字符串中有多少个不同的字符以及每种字符的个数?
package com.gdf.test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class Test2 {
public static void main(String[] args) {
Map map = new HashMap();
String str = "sdfsesdfsdfsfeeefesAAAA";
Test2 t2 = new Test2();
t2.loop(str, map);
for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {
Map.Entry e = (Entry) iter.next();
System.out.print(e.getKey() + ":");
System.out.println(e.getValue());
}
}
/**
* 循环
* @param str 字符串
* @param map
*/
public void loop(String str, Map map){
str = this.sort(str);
for(int i=0; i<str.length(); i++){
char ch = str.charAt(0);
int length = str.lastIndexOf(ch) + 1;
map.put(ch, length);
str = str.substring(length);
loop(str, map);
}
}
/**
* 字符串排序
* @param str
* @return
*/
public String sort(String str){
String[] strs = str.split("");
Arrays.sort(strs);
StringBuffer sb = new StringBuffer();
for(int i=0; i<strs.length; i++){
sb.append(strs[i]);
}
return sb.toString() ;
}
}
输出结果为:
d:3
A:4
f:5
s:6
e:5