使用堆栈结构来反转字符串/ Word

时间:2014-11-24 20:22:02

标签: java

我想知道如何在java中反转用户输入的单词或字符串 我已经完成了这个简单的部分..

import java.util.Scanner;
public class Stack
{
    public static void main(String args[]){
        System.out.println("Please enter a word to reverse: ");
        Scanner sc=new Scanner(System.in);
        String name=sc.nextLine();


    }

     private int maxSize; // size of stack array
     private long[] stackArray;
     private int top; // top of stack
     public Stack(int s) { // constructor
         maxSize = s; // set array size
         stackArray = new long[maxSize]; // create array
         top = -1; // no items yet
        }    
     public void push(long j) { // put item on top of stack 
         top++;
         stackArray[top] = j; // increment top, insert item
        }
     public long pop() { // take item from top of stack

         return stackArray[top--]; //access item, decrement top
        } 
}

这基本上只是接受用户输入而什么都不做(并且有弹出和推送方法)

只是想知道是否有人可以帮我扭转字符串让我们说'你好'' (但请记住它是用户提交的字符串)

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

  1. 你有一堆long,但你想要一堆char。你会如何解决这个问题?
  2. 如果你将2个字符推入堆栈,然后将它们两个都弹出,将每个字符依次附加到新字符串会发生什么?

答案 1 :(得分:-3)

您可以使用java中的Stack集合,只需将每个字符推入其中即可。 然后弹出它们中的每一个并连接它们,你将有相反的词。

public static void main(String[] args) {
    Stack<String> stack = new Stack<String>();
    StringBuilder stringBuilder = new StringBuilder();
    String word = "WORD";
    for (int i = 0; i < word.length(); i++) {
        stack.push(word.substring(i,i+1));
    }
    for (int i = 0; i < word.length(); i++) {
        stringBuilder.append(stack.pop());
    }
    System.out.println(stringBuilder.toString());
}