首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java算法题解决思路

2013-01-28 
java算法题获取该字符串中每一个字母出现的个数“GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID”我在网上

java算法题
获取该字符串中每一个字母出现的个数
   “GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID”
我在网上找到的代码是这样的,但因为我没有学过集合类,所以看不懂,希望大家能给我详细解析一下
package itcast.Exam;

import java.security.KeyStore.Entry;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

/*
 * 6、获取该字符串中每一个字母出现的个数(10)。
 * “GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID”
 * 
 *这题因为在基础方面的集合类学习的不是很深入所以感觉不是很懂!
 *  还有待继续学习!
 */
public class Exam6 {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "GZITCASTADVANCEDTRAININGJAVASEJAVAEE ANDROID";
System.out.println("每个字符串出现的个数如下:");
System.out.println(strCount(str));
}

public static String strCount(String str){
char[] ch = str.toCharArray();
Map<Character, Integer> map = new TreeMap<Character, Integer>();

for (int i = 0; i < ch.length; i++) {
Integer value = map.get(ch[i]);
int count = 1;
if (value != null) {
count = value + 1;
}
map.put(ch[i], count);
}
return toNewString(map);
}

public static String toNewString(Map<Character, Integer> map){
StringBuilder sBuilder = new StringBuilder();
Iterator<java.util.Map.Entry<Character, Integer>> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {
java.util.Map.Entry<Character, Integer> entry = iterator.next();
char ch1 = entry.getKey();
int value = entry.getValue();
sBuilder.append(ch1+"{"+value+"}"+" ");
}
return sBuilder.toString();
}
}
我突然发现CSDN的表情很酷啊,呵呵
[解决办法]
如果全是大(小)写字母可以用数组。
Map<K,V>是通用解法
K:键,V:值

热点排行