1. 程式人生 > >Java給定一個字串陣列,判斷每個字元出現次數

Java給定一個字串陣列,判斷每個字元出現次數

題目要求:給定一個字串,判斷每個字元出現多少次? 

解決思路:利用Map的特性:即Map集合中如果兩個key(鍵)值是一樣相同的,那麼,後放(put)入的值會將前面存在的value(值)替換掉,也就是覆蓋了前面的value。 

package com.zhj.www;
import java.util.HashMap;
import java.util.Map;

public class Test {

	public static void main(String[] args) {
		String s = "Helloworld!hW";//給定已知字串
		char[] c = s.toCharArray();//將字串轉化為字元陣列,便於遍歷每個字元
		Map<Character,Integer> map = new HashMap<Character,Integer>();
		
		for (char cc:c ) {//開始遍歷
			map.put(cc, map.containsKey(cc)?map.get(cc)+1:1);
		}
		System.out.println(map);
	}
}

Map設定的泛型有兩個引數,第一個是Character,第二個是Integer;

解釋String類的toCharArray()方法:一個新分配的字元陣列,其長度是該字串的長度,其內容被初始化以包含由該字串表示的字元序列。

解釋Map介面中的put()方法:將鍵與值對應起來,並加入到map中。

解釋Map介面中的containsKey()方法:如果該對映包含指定鍵的對映,則返回true。

解釋Map介面中的get()方法:返回指定鍵對映的值,如果該對映不包含鍵的對映,則返回null。

執行結果:
    {q=1, a=4, s=1, t=1, d=1, e=1, f=3, v=1}