Map----TreeMap

2018-09-19  本文已影响0人  东风谷123Liter

问题:现在有一串字母,要求对他进行排序,并统计每个字母的个数,
让字母与字母个数相互映射; 如:“asdfdfghfglkjasdgffgdf”
且,希望打印的结果是这样的:a(2)d(4)......

思路:

package jihe;
import java.util.*;
public class TreeMapDemo {
     public  static void main(String[] args) {
           countChar("asdafgdsghgkk");
     }
     public static String countChar(String str) {
           char[] ch = str.toCharArray();
           //由于字母要排序,所以选用TreeSet集合
           //由于char类型是数据类型不是对象类型,所以要换用Characater
           TreeMap<Character, Integer> tm = new TreeMap<Character,Integer>();
           for(int i=0; i<ch.length; i++) {
                Integer vlue = tm.get(ch[i]);
                if(vlue==null)
                     tm.put(ch[i], 1);
                else {
                     vlue++;
                     tm.put(ch[i], vlue);
                }
           }
           System.out.println(tm);//打印TreeSet集合
           return null;
     }
}

结果:

//因为返回的String类型的字符串,所以可以调用String的缓冲区!
           StringBuilder sb = new StringBuilder();
           Set<Map.Entry<Character, Integer>> me = tm.entrySet();
           Iterator<Map.Entry<Character, Integer>> it = me.iterator();
           while(it.hasNext()) {
                Map.Entry<Character, Integer> men = it.next();
                Character cha = men.getKey();
                Integer con = men.getValue();
                sb.append(cha+"("+con+")");
           }
           return sb.toString();
String str = countChar("asdafgdsghgkk");
           System.out.println(str);
String str = countChar(";asda,fgd.sg/hgkk");

结果:


public static String countChar(String str) {
           char[] ch = str.toCharArray();
           //由于字母要排序,所以选用TreeSet集合
           //由于char类型是数据类型不是对象类型,所以要换用Characater
           TreeMap<Character, Integer> tm = new TreeMap<Character,Integer>();
           for(int i=0; i<ch.length; i++) {
                Integer vlue = tm.get(ch[i]);
                if(!(ch[i]>'a'&&ch[i]<'z'||ch[i]>'A'&&ch[i]<'Z'))
                     continue;
                if(vlue==null)
                     tm.put(ch[i], 1);
                else {
                     vlue++;
                     tm.put(ch[i], vlue);
                }
           }
int count = 0;
                for(int i=0; i<ch.length; i++) {
                     Integer vlue = tm.get(ch[i]);
                     if(!(ch[i]>'a'&&ch[i]<'z'||ch[i]>'A'&&ch[i]<'Z'))
                          continue;
                     if(vlue!=nul
                           count=vlue
                     }
                     count++;
                     tm.put(ch[i], count);
                     count=0;
                }
上一篇 下一篇

猜你喜欢

热点阅读