Java程式查詢字串的所有子集


在本文中,我們將瞭解如何查詢字串的所有子集。在Java中,字串是一種資料型別,包含一個或多個字元,並用雙引號(“ ”)括起來。字串的一部分或子集稱為子字串

示例場景

Input: string = JVM;
Output: The subsets of the string are: J, JV, JVM, V, VM, M 

在Java中查詢字串的所有子集

使用以下方法在Java中查詢字串的所有子集:

  • 使用巢狀for迴圈
  • 使用substring()方法

使用巢狀for迴圈

在這種方法中,我們使用巢狀的for迴圈。外部迴圈將執行到子集的數量,內部迴圈將執行到字串長度。在內部迴圈中,使用if塊檢查並列印子集。

示例

以下Java程式演示瞭如何使用巢狀for迴圈查詢字串的所有子集。

public class Demo {
   public static void main(String[] args) {
      String input_string  = "run";
      int string_length  = input_string.length();
	  // total number of subset 2^n
      int maxLen = 1 << string_length ;
      System.out.println("Given String: " + input_string);
      System.out.print("Subsets of the String: ");
	  // creating substrings 
      for (int i = 0; i < maxLen; i++) {
         String string_subset = "";
         for (int j = 0; j < string_length ; j++) {
            if ((i & (1 << j)) > 0) {
               string_subset += input_string.charAt(j);
            }
         }
         System.out.println(string_subset);
      }
   }
}

執行後,此程式碼將顯示以下結果:

Given String: run
Subsets of the String: 
r
u
ru
n
rn
un
run

使用substring()方法

Java字串類substring()方法用於檢索指定字串的子集。此方法接受兩個引數,即開始索引和結束索引,並在該範圍內列印子集。

示例

在這個例子中,我們使用substring()方法列印給定字串的所有子集。

public class Demo {
   public static void main(String[] args) {
      String input_string = "JVM";
      int string_length = input_string.length();
      int temp = 0;
      System.out.println("The string is defined as: " +input_string);
      String string_array[] = new String[string_length*(string_length+1)/2];
      for(int i = 0; i < string_length; i++) {
         for(int j = i; j < string_length; j++) {
            string_array[temp] = input_string.substring(i, j+1);
            temp++;
         }
      }
      System.out.println("The subsets of the string are: ");
      for(int i = 0; i < string_array.length; i++) {
         System.out.println(string_array[i]);
      }
   }
}

執行程式碼後,將顯示以下輸出:

The string is defined as: JVM
The subsets of the string are:
J
JV
JVM
V
VM
M

更新於: 2024年8月1日

1K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.