亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何在字符串中獲取不同的字符及其數量

發布時間:2022-03-17 11:45:07 來源:億速云 閱讀:917 作者:小新 欄目:開發技術

小編給大家分享一下java如何在字符串中獲取不同的字符及其數量,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

如何在字符串中獲取不同的字符及其數量

這道題可以拆解為兩個步驟,第一步,找出不同的字符,第二步,統計出它們的數量。好像有點廢話,是不是?那我先來一個答案吧。

public class DistinctCharsCount {     public static void main(String[] args) {         printDistinctCharsWithCount("itwanger");         printDistinctCharsWithCount("chenmowanger");     }      private static void printDistinctCharsWithCount(String input) {         Map<Character, Integer> charsWithCountMap = new LinkedHashMap<>();          for (char c : input.toCharArray()) {             Integer oldValue = charsWithCountMap.get(c);              int newValue = (oldValue == null) ? 1 :                     Integer.sum(oldValue, 1);              charsWithCountMap.put(c, newValue);         }         System.out.println(charsWithCountMap);     } }

程序輸出的結果是:

{i=1, t=1, w=1, a=1, n=1, g=1, e=1, r=1} {c=1, h=1, e=2, n=2, m=1, o=1, w=1, a=1, g=1, r=1}

說一下我的思路:

1)聲明一個 LinkedHashMap,也可以用 HashMap,不過前者可以保持字符串拆分后的順序,結果看起來更一目了然。

為什么要用 Map 呢?因為 Map 的 key 是不允許重復的,剛好可以對重復的字符進行數量的累加。

2)把字符串拆分成字符,進行遍歷。

3)如果 key 為 null 的話,就表明它的數量要 +1;否則的話,就在之前的值上 +1,然后重新 put 到 Map  中,這樣就覆蓋了之前的字符數量。

思路很清晰,對不對?忍不住給自己鼓個掌。

那,JDK 8 之后,Map 新增了一個很厲害的方法 merge(),一次性為多個鍵賦值:

private static void printDistinctCharsWithCountMerge(String input) {     Map<Character, Integer> charsWithCountMap = new LinkedHashMap<>();      for (char c : input.toCharArray()) {         charsWithCountMap.merge(c, 1, Integer::sum);     }     System.out.println(charsWithCountMap); }

有沒有很厲害?一行代碼就搞定。第一個參數為鍵,第二個參數為值,第三個參數是一個 BiFunction,意思是,如果鍵已經存在了,就重新根據  BiFunction 計算新的值。

如果字符是第一次出現,就賦值為 1;否則,就把之前的值 sum 1。

看完了這篇文章,相信你對“java如何在字符串中獲取不同的字符及其數量”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敦化市| 定结县| 句容市| 兴文县| 蒙城县| 清水县| 铜梁县| 宜兰县| 襄樊市| 巴中市| 迭部县| 黄浦区| 浦城县| 团风县| 璧山县| 吴忠市| 玛沁县| 礼泉县| 连平县| 玉林市| 勃利县| 抚远县| 容城县| 夏河县| 宜昌市| 漠河县| 吉木乃县| 富顺县| 临沭县| 虹口区| 延川县| 井冈山市| 来安县| 双柏县| 牡丹江市| 汨罗市| 英吉沙县| 农安县| 进贤县| 揭东县| 眉山市|