使用栈反转字符串的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+浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告