Java程式查詢字串中所有重複字元


字串中重複的字元是指出現不止一次的字元。在Java中,String是一個非基本資料型別,包含一個或多個字元,並用雙引號(" ")括起來。

根據題意,給定一個字串,我們的任務是編寫一個Java程式來查詢該字串中的所有重複字元。我們可以使用for迴圈和巢狀for迴圈來解決這個問題。


示例場景

Input: String str = "Apple";
Output: duplicate_char = p; 

p是一個重複字元,因為它出現不止一次。

使用for迴圈

在這種方法中,我們遵循以下步驟:

  • 首先將給定的字串轉換為字元陣列,然後使用Arrays.sort()方法對其進行排序。
  • 接下來,使用for迴圈迭代字元陣列的元素。
  • 使用if塊檢查當前字元是否等於下一個字元。
  • 如果相等,則將該字元標記為重複字元,並重復此過程,直到陣列長度結束。

示例

在這個Java程式中,我們使用for迴圈來查詢並列印字串中的重複字元。

import java.util.Arrays;
public class Example {
   public static void checkDupliChar(String str) {
      System.out.println("The string is: " + str);
      char[] carray = str.toCharArray();
      // sorting the character array
      Arrays.sort(carray);
      System.out.println("Duplicate Characters in the above string are: ");
      // for loop to print duplicate character
      for (int i = 0; i < carray.length - 1; i++) {
         if (carray[i] == carray[i + 1]) {
            System.out.println(carray[i]);
            // loop to skip next occurrence of same character
            while (i < carray.length - 1 && carray[i] == carray[i + 1]) {
               i++;
            }
         }
      }
   }
   // main method
   public static void main(String[] args) {
      checkDupliChar("tutorialspoint");
   }
}

以上程式碼的輸出如下:

The string is: tutorialspoint
Duplicate Characters in the above string are: 
i
o
t

使用巢狀for迴圈

按照以下步驟,使用巢狀for迴圈方法查詢字串中所有重複字元:

  • 將給定的字串轉換為字元陣列。
  • 索引0執行外部for迴圈到字元陣列的長度。
  • 內部for迴圈將從current+1索引執行到字元陣列的長度。
  • 接下來,我們使用if塊檢查當前字元是否等於下一個字元。
  • 如果相等,則列印重複字元。

示例

以下示例演示如何使用巢狀for迴圈查詢字串中所有重複字元。

public class Example {
   public static void main(String argu[]) {
      String str = "beautiful sea";
      char[] carray = str.toCharArray();
      System.out.println("The string is: " + str);
      System.out.print("Duplicate Characters in above string are: ");
	  // nested for loop to print duplicate characters
      for (int i = 0; i < str.length(); i++) {
         for (int j = i + 1; j < str.length(); j++) {
            if (carray[i] == carray[j]) {
               System.out.print(carray[j] + " ");
               break;
            }
         }
      }
   }
}

以上程式碼的輸出為:

The string is: beautiful sea
Duplicate Characters in above string are: e a u 

更新於:2024年8月1日

51K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告