Java給定一個字串陣列,判斷每個字元出現次數
阿新 • • 發佈:2019-02-16
題目要求:給定一個字串,判斷每個字元出現多少次?
解決思路:利用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}