基础考试题:
package test97;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
/**
* 2、 取出一个字符串中字母出现的次数。 如:字符串:"abcdekka27qoq" , 输出格式为:a(2)b(1)k(2)...<Character,
* Integer>
*
* * 思路: 遍历字符串,拿每一个字符到TreeMap中去找, 如果存在则把该字符和值加1作为键和值存储到集合中;
* 如果不存在则把该字符和1作为键和值存储到集合中。
*
* @author Administrator
*
*/
public class Test980 {
private static String str = "abcdekka27qoq";
public static void main(String[] args) {
checkStr();
}
private static void checkStr() {
String s = "abcdekka27qoq";
char[] cs = s.toCharArray();
TreeMap<Character, Integer> map = new TreeMap<>();// 创建一个TreeMap
for (char c : cs) {// 遍历 因为你数据是数组所以只能用for增强
Character key = c;
Integer value = map.get(c);
if (value == null) {// 判断,如果值为空,则向集合中添加(key,1),如果不为空则添加
// (key,value+1)
map.put(key, 1);
} else {
map.put(key, value + 1);
}
}
//System.out.println(map);
// 遍历集合
/* Set<String> set = map.keySet();map里没有数据
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String s = (String) it.next();// 这是Key
Integer integer = map.get(s);//这是value
if (s==null) {
map.put(s, 1);
}else {
map.put(s, integer+1);
}
}*/
//取出键值对
Set<Map.Entry<Character,Integer>> entrySet = map.entrySet();
//用entrySet里的迭代器方法
Iterator<Map.Entry<Character, Integer>> iterator = entrySet.iterator();
while (iterator.hasNext()) {
Map.Entry<Character,Integer> entry = iterator
.next();
//Map.Entry的方法
Character key = entry.getKey();
Integer value = entry.getValue();
System.out.print(key + "("+value +")");// 按规定的格式输出
}
}
}
|
|