使用棧反轉字串的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的原則。
廣告