程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 【Map】獲取字符串中,每一個字母出現的次數,map字符串

【Map】獲取字符串中,每一個字母出現的次數,map字符串

編輯:JAVA綜合教程

【Map】獲取字符串中,每一個字母出現的次數,map字符串


 1 package cn.itcast.p1.map.test;
 2 
 3 import java.util.Iterator;
 4 import java.util.Map;
 5 import java.util.TreeMap;
 6 /*練習:
 7  *   打印結果:a(1) b(2) c(3)...
 8  * 思路:
 9  * 對於結果的分析發現,字母和次數之間存在著映射的關系。而且這種關系好多。
10  * 好多酒需要存儲,能存儲映射關系的容器有數組和Map集合。
11  * 關系一方是有序編號嗎? 沒有
12  * 那就是使用Map集合。又發現可以保證唯一性的一方的一方具備著順序如a b c。。。
13  * 所以可以使用TreeMap集合。
14  * 
15  * 這個集合最終應該存儲的是字母和次數的對應關系。
16  * 
17  * 1.因為操作的是字符串中的字母,所以先將字符串變成字符數組。
18  * 2.遍歷字符數組,用每一個字母作為鍵去查Map集合這個表。
19  * 如果字母鍵不存在,就將該字母作為鍵,1作為值存儲到map集合中
20  * 如果該字母鍵存在,就將該字母鍵對應值取出並+1,在將該字母和+1後的值存儲到map集合中
21  * 鍵相同,值會覆蓋。這樣就記錄住了該字母的次數
22  * 
23  * 3.遍歷結束。map集合就記錄所有字母的出現次數。
24  * 
25  */
26 
27 public class Maptest {
28 
29     public static void main(String[] args) {
30         String str = "fdgavAde   bs5dDadfgjkdgasxbccxvvcxn1bnb-dfs";
31         
32         String s = getCharCount(str);
33         
34         System.out.println(s);
35 
36     }
37 
38     private static String getCharCount(String str) {
39         //將字符串轉化成字符數組
40         char[] chs = str.toCharArray();
41         //定義map集合表
42         Map<Character,Integer> map = new TreeMap<Character,Integer>();
43         
44         for(int i=0; i<chs.length; i++)
45         {
46 //            if (!(chs[i]>='a' && chs[i]<='z'  ||  chs[i]>='A' && chs[i] <='Z'))
47             if (!(Character.toLowerCase(chs[i])>='a' && Character.toLowerCase(chs[i])<='z'))
48                 continue;
49             
50             //將數組中的字母作為鍵去查map表。
51             Integer value = map.get(chs[i]);
52             
53             int count = 1;
54             
55             if(value!=null)
56             {
57                 count = value+1;
58             }
59             
6061             
62             map.put(chs[i], count);
63         }
64         
65         return mapToString(map);
66     }
67 
68     private static String mapToString(Map<Character, Integer> map) {
69         StringBuilder sb = new StringBuilder();
70         
71         Iterator<Character> it = map.keySet().iterator();
72         
73         while(it.hasNext())
74         {
75             Character key = it.next();
76             Integer value = map.get(key);
77             sb.append(key+"("+value+")"+" ");
78         }
79         
80         return sb.toString();
81         
82     }
83 
84 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved