使用棧反轉字串的Java程式


在本文中,我們將瞭解如何使用棧反轉字串。字串是一種資料型別,包含一個或多個字元,並用雙引號 (“ ”) 括起來。是一種線性資料結構,用於儲存物件的集合。它基於後進先出 (LIFO) 原則。

問題陳述

給定一個字串,編寫一個Java程式,使用棧反轉字串。以下是演示:

輸入

Input string: Java Program

輸出

Reversed string: margorP avaJ

不同的方法

 以下是使用棧反轉字串的不同方法:

在主方法中使用棧反轉字串

以下是使用棧在主方法中反轉字串的步驟:

  • 首先,匯入java.util包中的所有類。
  • 我們將定義輸入字串。
  • 將字串轉換為字元陣列。
  • 壓入每個字元到棧中。
  • 從棧中彈出字元以反轉字串。
  • 顯示反轉後的字串。

示例

在這裡,我們將所有操作繫結到“main”函式下。

import java.util.*;
public class ReverseString {
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      String input_string = "Java Program";
      System.out.println("The string is defined as " +input_string);
      char[] reverse = new char[input_string.length()];
      Stack<Character> stack = new Stack<Character>();
      for (int i = 0; i < input_string.length(); i++) {
         stack.push(input_string.charAt(i));
      }
      int i = 0;
      while (!stack.isEmpty()) {
         reverse[i++] = stack.pop();
      }
      String result = new String(reverse);
      System.out.println("\nThe reversed string is: " + result);
   }
}

輸出

Required packages have been imported
The string is defined as Java Program

The reversed string is: margorP avaJ

程式碼解釋

在這種方法中,所有操作都在主方法中處理。我們首先從java.util包匯入Stack類,該類提供了棧資料結構。定義輸入字串“Java Program”,並將其轉換為字元陣列。使用for迴圈,將每個字元壓入棧中。由於棧遵循LIFO,因此從中彈出元素將以相反的順序產生字元,這些字元儲存在一個新的字元陣列中。最後,使用String建構函式建立反轉後的字串並顯示。

透過封裝操作來使用棧反轉字串

以下是透過封裝操作使用棧反轉字串的步驟:

  • java.util包匯入必要的類。
  • 定義一個方法reverse_string()來處理字串反轉。
  • 在方法中將字串的每個字元壓入棧中。
  • 從棧中彈出字元以反轉字串並返回結果。
  • 在主函式中使用reverse_string()方法反轉字串並顯示結果。

示例

在這裡,我們將操作封裝到體現面向物件程式設計的函式中。

import java.util.*;
public class ReverseString {
   public static String reverse_string(String input_string) {
      char[] reverse = new char[input_string.length()];
      Stack<Character> stack = new Stack<Character>();
      for (int i = 0; i < input_string.length(); i++) {
         stack.push(input_string.charAt(i));
      }
      int i = 0;
      while (!stack.isEmpty()) {
         reverse[i++] = stack.pop();
      }
      return new String(reverse);
   }
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      String input_string = "Java Program";
      System.out.println("The string is defined as " +input_string);
      System.out.println("\nThe reversed string is: " + reverse_string(input_string));
   }
}

輸出

Required packages have been imported
The string is defined as Java Program

The reversed string is: margorP avaJ

程式碼解釋

在這種方法中,我們將字串反轉邏輯封裝在一個名為reverse_string()的單獨方法中。此方法遵循與示例1相同的步驟:它將輸入字串的每個字元壓入棧中,然後彈出它們以反轉字串。reverse_string()方法返回反轉後的字串,然後在主函式中顯示。這種結構增強了程式碼的可重用性,並演示了OOP的原則。

更新於:2024年8月22日

2K+瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告