java堆栈字符串倒序输出_Java如何使用堆栈来反转字符串?

在Java编程中,如何使用堆栈来反转字符串?

以下示例显示了如何使用堆栈在用户自定义的StringReverserThroughStack()方法来反转字符串。

package com.yiibai;

import java.io.IOException;

public class StringReversalUsingStack {

private String input;

private String output;

public StringReversalUsingStack(String in) {

input = in;

}

public String doRev() {

int stackSize = input.length();

Stack theStack = new Stack(stackSize);

for (int i = 0; i < input.length(); i++) {

char ch = input.charAt(i);

theStack.push(ch);

}

output = "";

while (!theStack.isEmpty()) {

char ch = theStack.pop();

output = output + ch;

}

return output;

}

public static void main(String[] args) throws IOException {

String input = "Java String And Stack";

String output;

StringReversalUsingStack theReverser = new StringReversalUsingStack(input);

output = theReverser.doRev();

System.out.println("Reversed: " + output);

}

class Stack {

private int maxSize;

private char[] stackArray;

private int top;

public Stack(int max) {

maxSize = max;

stackArray = new char[maxSize];

top = -1;

}

public void push(char j) {

stackArray[++top] = j;

}

public char pop() {

return stackArray[top--];

}

public char peek() {

return stackArray[top];

}

public boolean isEmpty() {

return (top == -1);

}

}

}

上述代码示例将产生以下结果 -

Reversed: kcatS dnA gnirtS avaJ

示例-2

以下是使用堆栈来反转字符串的另一个示例。

package com.yiibai;

import java.util.Scanner;

class Stack3 {

private int maxSize;

private char[] stackArray;

private int top;

public Stack3(int s) {

maxSize = s;

stackArray = new char[maxSize];

top = -1;

}

public void push(char j) {

stackArray[++top] = j;

}

public char pop() {

return stackArray[top--];

}

public char peek() {

return stackArray[top];

}

public boolean isEmpty() {

return (top == -1);

}

public boolean isFull() {

return (top == maxSize - 1);

}

}

public class StringReversalUsingStack2 {

public static void main(String[] args) {

System.out.println("Enter a sentence: ");

Scanner scan = new Scanner(System.in);

String input = scan.nextLine();

int stackSize = input.length();

Stack3 theStack = new Stack3(stackSize);

for (int j = 0; j < input.length(); j++) {

char ch = input.charAt(j);

theStack.push(ch);

}

while (!theStack.isEmpty()) {

char ch = theStack.pop();

System.out.print(ch);

}

}

}

上述代码示例将产生以下结果 -

Enter a sentence:

123abc

cba321

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值