1. 程式人生 > >java實現計算出字串中每個字母出現次數

java實現計算出字串中每個字母出現次數

題目:java實現計算出字串中每個字母出現次數

示例:

輸入字串為:aBcdenffdhanbcdeefe+- ..
輸出字串為:B(1)a(2)b(1)c(2)d(3)e(4)f(3)h(1)n(2)
括號內數字為前面字母出現次數

實現程式碼:

import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class CountCharacter {
    public static void main(String[] args) {
        String str = "aBcdenffdhanbcdeefe+-  .."
; System.out.println("輸入字串為:"+str); String count = countCharacter(str); System.out.println("輸出字串為:"+count); System.out.println("括號為前面字母出現次數"); } public static String countCharacter(String str) { char[] c = str.toCharArray(); Map<Character,Integer> map = new
TreeMap<Character,Integer>(); for(int i = 0;i<c.length;i++){ Integer value = map.get(c[i]); if(!(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z')) continue; if(value==null) map.put(c[i], 1); else
map.put(c[i], value+1); } return maptoString(map); } private static String maptoString(Map<Character, Integer> map) { StringBuilder str = new StringBuilder(); Iterator<Character> it = map.keySet().iterator(); while(it.hasNext()){ Character key = it.next(); Integer value = map.get(key); str.append(key+"("+value+")"); } return str.toString(); } }

輸出結果:

輸入字串為:aBcdenffdhanbcdeefe+- ..
輸出字串為:B(1)a(2)b(1)c(2)d(3)e(4)f(3)h(1)n(2)
括號為前面字母出現次數