用栈实现字符串反转输出

用Java实现字符串的反转输出

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class ReverseApp {

	public static void main(String[] args) {
		String input,output;
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		try {
			input = br.readLine();
			Reverser r = new Reverser(input);
			output = r.doRev();
			System.out.println("Input:"+input);
			System.out.println("After reverse:"+output);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}


}

class Reverser {
	private String input;
	private String output;
	public Reverser(String in) {
		this.input = in;
	}
	public String doRev() {
		int stackSize = this.input.length();
		Stack stack = new Stack(stackSize);
		for(int j=0;j<stackSize;j++) {
			char c = input.charAt(j);
			stack.push(c);
		}
		output="";
		while(!stack.isEmpty()) {
			output += stack.pop();
		}
		return output;
	}
	
}

class Stack {
	private int maxSize;
	private char[] stackArray;
	private int top;
	
	public Stack(int maxSize) {
		this.maxSize = maxSize;
		stackArray = new char[maxSize];
		this.top = -1;
	}
	public boolean isFull(){
		return (top==maxSize-1);
	}
	public boolean isEmpty() {
		return(-1==top);
	}
	public void push(char x){
		if(!isFull()) stackArray[++top] = x;
		else System.out.println("Stack is full");
	}
	public char peek() {//非空是才能操作
		return stackArray[top];
	}
	public char pop() {//非空是才能操作
		return stackArray[top--];
	}
}


你可能感兴趣的:(java,String,Class,input,import,output)