写一个算法,将字符串逆序
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReverseApp{
public static void main(String args[]) throws IOException{
String input,output;
while(true){
System.out.print("请输入一个字符串");
System.out.flush();
input=getString();
if(input.equals(" ")){
break;
}
Reverser theReverser=new Reverser(input);
output=theReverser.doRev();
System.out.println("反转后是"+output);
}
}
public static String getString()throws IOException{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String s=br.readLine();
return s;
}
}
class Reverser{
private String input;
private String output;
public Reverser(String in){
input=in;
}
//执行反转
public String doRev(){
int stackSize=input.length();
Stackx theStack = new Stackx(stackSize);
for(int j=0; j<input.length();j++){
char ch=input.charAt(j);
theStack.push(ch);
}
output=" ";
while(!theStack.isEmpty()){
char ch=theStack.pop();
output=output+ch;
}
return output;
}
}
//栈
class Stackx{
//三个必须元素
private int maxSize;
private char[] stackArray;
private int top;
//构造栈
public Stackx(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);
}
}