Java示例使用Stack进行字符串反转


Java示例使用Stack进行字符串反转

import java.io.IOException;



public class StringReverserThroughStack {

   private String input;

   private String output;

   public StringReverserThroughStack(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 Source and Support";

      String output;

      StringReverserThroughStack theReverser =

      new StringReverserThroughStack(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);

      }

   }

}