Java 使用堆栈分别反转单词

Java 使用堆栈分别反转单词,java,stack,Java,Stack,在java中尝试使用堆栈逐个反转字符串。我已经编写了一个代码,以反向输出整个字符串,但我需要每个单词都反向,但保持相同的顺序。我能做些什么来操纵我的代码使其工作 import java.util.Scanner; import jss2.ArrayStack; public class ReverseString { public static void main(String[] args) { Scanner scanner = new Scanner(Sys

在java中尝试使用堆栈逐个反转字符串。我已经编写了一个代码,以反向输出整个字符串,但我需要每个单词都反向,但保持相同的顺序。我能做些什么来操纵我的代码使其工作

import java.util.Scanner;

import jss2.ArrayStack;

public class ReverseString {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        String str = "";
        ArrayStack<String> stack = new ArrayStack<String>();
        System.out.println("Enter a string to be reversed: ");
        str = scanner.nextLine();
        if (str == null || str.equals("")) {
            System.out.println("Try Again!");
            System.exit(0);
        }
        for (int i = 0; i < str.length(); i++) {
                    // pushes all the characters in the string
                    // one by one into the Stack

            stack.push(str.substring(i, i + 1));
        }
        String strrev = "";
        while (!stack.isEmpty()) {  
                    // pops all the elements from the Stack
                    // one by one which reverses the stack
            strrev += stack.pop();


        }
        System.out.println("Reverse of the string : \"" + strrev + "\"");
    }
}
import java.util.Scanner;
导入jss2.ArrayStack;
公共类反向限制{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
字符串str=“”;
ArrayStack堆栈=新的ArrayStack();
System.out.println(“输入要反转的字符串:”);
str=scanner.nextLine();
if(str==null | | str.equals(“”){
System.out.println(“再试一次!”);
系统出口(0);
}
对于(int i=0;i
如果您需要将其拆分为多个单词,请使用。这将把字符串分解成单词。然后,您可以通过编写的代码或按照PeterLawrey的建议,创建一个并调用“reverse()”方法来反转单词中的字符。

或者这样:您正在推送单个字符,而不是单词。顺便说一句,StringBuilder.reverse()可以这样做,如果您只想这样做的话。。。