利用栈来实现
/*
* 字符栈
*/
public class CharStzck {
private int maxSize;
private char[] arr;
private int top;
public CharStzck(int size) {
this.maxSize = size;
arr = new char[maxSize];
this.top = -1;
}
public void push(char value) {
top++;
arr[top] = value;
}
public char pop() {
return arr[top--];
}
public char peak() {
return arr[top];
}
public boolean isEmpty() {
return (top == -1);
}
public boolean isFull() {
return (top == maxSize-1);
}
}
/*
*利用栈 将字符反转
*/
public class ReverseStr {
private String input;
public ReverseStr(String input) {
this.input = input;
}
public String doReverse() {
CharStzck stack = new CharStzck(input.length());
//将字符串中的每一个字符放入栈中
for(int i=0;i<input.length();i++) {
char everChar = input.charAt(i);
stack.push(everChar);
}
String result="";
//再从栈中取出字符并且进行拼接
while(!stack.isEmpty()) {
char pop = stack.pop();
result+=pop;
}
return result;
}
public static void main(String[] args) {
ReverseStr reverse = new ReverseStr("abcd");
System.out.println(reverse.doReverse());
}
}
```