題目要求:給定一個字符串,判斷每個字符出現多少次??
解決思路:利用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}