东家蝴蝶西家飞,白骑少年今日归。 愿,所有迷茫的人,都不再迷茫的,愿,所有努力工作的人,都可以得到应有的回报,愿,所有的人,都可以找到回家的方向,愿,再无苦痛,再无离别。
上一章简单介绍了字符串转换成数据库in语句的形式(五),如果没有看过,请观看上一章
一. 统计字符出现的次数
有一个长字符串,里面有多个不同的字符,统计一下各个字符出现的次数。有很多种方法来实现,可以用一种新的方式去处理,用Map 的方式。 统计时,最好可以按照字母的顺序进行相应的排序,所以可以使用TreeMap 的方式。 利用Map,可以减少空间复杂度。
二. 处理代码
public static String showCount(String str){
//1.将字符串转换成相应的字符数组 。 用TreeMap进行相应的接收。
char[] charArr=str.toCharArray();
// 用包装类。
Map<Character,Integer> map=new TreeMap<Character,Integer>();
for (char c : charArr) { //对每一个字符进行相关的判断。
//2. 对传入的字符进行判断。如果不是a-z或者A-Z 就不判断。
if(!(c>='a'&&c<='z'||c>='A'&&c<='Z')){
continue;
}
//3.是的话,就从map中判断,看是否能够取出。
Integer count=map.get(c); //看数目。
if(count==null){ //即没有取出来,设置数目为1.
map.put(c,1);
}else{
map.put(c,count+1); // 为原来的数目+1
}
}
return mapToString(map);
}
三. Map 转换成String 字符串的方法
//将Map转换成相对应的字符串进行输出。
public static String mapToString(Map<Character,Integer> map){
StringBuilder sb=new StringBuilder();
//需要遍历一下这个map.
for (Map.Entry<Character, Integer> m: map.entrySet()) {
sb.append(m.getKey()+"("+m.getValue()+")");
}
return sb.toString();
}
四. 代码
public class StringTest3 {
public static void main(String[] args) {
String string="adsfahlkj;asdf;sal124+asfdbclsdmnqoqweprqwklhsdf;sdlanzm,nxcwerqabcdefghijklmnopqrstuvwxyz";
System.out.println("展示值:"+showCount(string));
}
public static String showCount(String str){
//1.将字符串转换成相应的字符数组 。 用TreeMap进行相应的接收。
char[] charArr=str.toCharArray();
Map<Character,Integer> map=new TreeMap<Character,Integer>();
for (char c : charArr) { //对每一个字符进行相关的判断。
//2. 对传入的字符进行判断。如果不是a-z或者A-Z 就不判断。
if(!(c>='a'&&c<='z'||c>='A'&&c<='Z')){
continue;
}
//3.是的话,就从map中判断,看是否能够取出。
Integer count=map.get(c); //看数目。
if(count==null){ //即没有取出来。
map.put(c,1);
}else{
map.put(c,count+1);
}
}
return mapToString(map);
}
//将Map转换成相对应的字符串进行输出。
public static String mapToString(Map<Character,Integer> map){
StringBuilder sb=new StringBuilder();
//需要遍历一下这个map.
for (Map.Entry<Character, Integer> m: map.entrySet()) {
sb.append(m.getKey()+"("+m.getValue()+")");
}
return sb.toString();
}
}
控制台输出结果为:
展示值:a(7)b(2)c(3)d(7)e(3)f(5)g(1)h(3)i(1)j(2)k(3)l(6)m(3)n(4)o(2)p(2)q(5)r(3)s(8)t(1)u(1)v(1)w(4)x(2)y(1)z(2)
谢谢!!!