Java程式統計每個字元出現的次數


Java中,統計字串中每個字元出現的次數是一項常見的任務,可以使用HashMap高效地完成。HashMap允許我們儲存鍵值對,其中字串中每個唯一的字元都是一個鍵,而值是其出現的次數。

問題陳述

給定一個字串,我們需要統計每個字元在字串中出現的次數。例如,在字串thisisit中,字元t出現兩次,h出現一次,i出現三次,s出現兩次。

輸入

String myStr = "thisisit";

輸出

Counting occurrences of each character = {s=2, t=2, h=1, i=3}

統計每個字元出現的次數

以下是統計字元出現次數的步驟:

    為了解決這個問題,我們使用HashMap來儲存每個字元作為鍵,以及其出現的次數作為值。我們迭代字串,對於每個字元:
  • 步驟1. 使用containsKey()方法檢查該字元是否已經是HashMap中的鍵。
  • 步驟2. 如果是,則遞增其計數。
  • 步驟3. 如果不是,則將其新增到HashMap中,計數為1。

為了統計出現次數,我們使用HashMap。迴圈遍歷並使用containsKey()和charAt()方法,統計上述字串中每個字元出現的次數:

HashMap <Character, Integer> hashMap = new HashMap<>();
for (int i = myStr.length() - 1; i >= 0; i--) {
   if (hashMap.containsKey(myStr.charAt(i))) {
      int count = hashMap.get(myStr.charAt(i));
      hashMap.put(myStr.charAt(i), ++count);
   } else {
         hashMap.put(myStr.charAt(i),1);
   }
}

Java程式統計每個字元出現的次數

以下是統計每個字元出現次數的程式:

import java.util.HashMap;
public class Demo {
   public static void main(String[] args) {
      String myStr = "thisisit";
      System.out.println("String ="+myStr);
      HashMap <Character, Integer> hashMap = new HashMap<>();
      for (int i = myStr.length() - 1; i >= 0; i--) {
         if (hashMap.containsKey(myStr.charAt(i))) {
            int count = hashMap.get(myStr.charAt(i));
            hashMap.put(myStr.charAt(i), ++count);
         } else {
            hashMap.put(myStr.charAt(i),1);
         }
      }
      System.out.println("Counting occurrences of each character = "+hashMap);
   }
}

輸出

String =thisisit
Counting occurrences of each character = {s=2, t=2, h=1, i=3}

程式碼解釋

這個Java程式使用**HashMap**統計字串中每個字元出現的次數。字串**myStr**初始化為“thisisit”。然後建立一個**HashMap**來儲存字元作為鍵,以及它們的計數作為值。一個for迴圈反向迭代字串。對於每個字元,程式使用**containsKey**檢查它是否已存在於**HashMap**中。如果存在,則遞增計數;如果不存在,則新增該字元,計數為1。最後,程式列印**HashMap**,顯示“thisisit”中每個字元的計數,結果為{s=2, t=2, h=1, i=3}。

更新於:2024年7月4日

2K+瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告