题目:
“sfzsfr 54646q2/* /QW*=- 0`gxg zsfs gfhgkhlikgjfhsargdssdfsd”获取该字符串中,每一个字母出现的次数,按要求打印Q(1)W(1).......
思路:
1,将字符串转换为单个字母的字符数组
2,定义map集合表
3,将字母与出现的次数通过map映射,字母作为键,字母出现的次数作为值
代码示例:
public class MapTest {
public static void main(String[] args) {
String str_1 = "sfzsfr 54646q2/* /QW*=- 0`gxg zsfs gfhgkhlikgjfhsargdssdfsd";
System.out.println("原字符串:"+str_1);
String str_2 = GetCharCounts(str_1);
System.out.println("统计结果:"+str_2);
}
public static String GetCharCounts(String str_1) {
//1.将字符串转换为单个字母的字符数组
char[] letters = str_1.toCharArray();
//2.定义map集合表
Map<Character,Integer> map = new TreeMap<Character, Integer>();
//3.将字母与出现的次数通过map映射,key为字母,value为字母出现的次数
for (int i = 0; i < letters.length; i++) {
//判断是否为字母
if(!(letters[i]>='a'&&letters[i]<='z'||letters[i]>='A'&&letters[i]<='Z'))
continue;
Integer value = map.get(letters[i]);
int count = 0;
if(value!=null)
count = value;
count++;
map.put(letters[i], count);
}
return MyToString(map);
}
public static String MyToString(Map<Character, Integer> map) {
StringBuilder stringBuilder = new StringBuilder();
Iterator<Character> iterator = map.keySet().iterator();
while(iterator.hasNext()) {
Character key = iterator.next();
Integer vaule = map.get(key);
stringBuilder.append(key+"("+vaule+")");
}
return stringBuilder.toString();
}
}