您的位置:首页 > 编程语言 > Java开发

java中使用堆栈将字符串逆序打印、判断回文

2012-10-04 00:00 381 查看
package stack;

import java.util.Scanner;

class StackString {
public int maxSize;
private char[] array;
private int top;

public StackString(int maxSize) {
this.maxSize = maxSize;// 要加this否则无法识别。
array = new char[maxSize];
top = -1;
}

public void push(char i) {
array[++top] = i;
}

public char pop() {
return (array[top--]);
}

public int peak() {
return (array[top]);
}

public boolean isEmpty() {
return (top == -1);
}

public boolean isFull() {
return (top == maxSize - 1);
}
}

public class ReverseString {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Input a string:");
// 输入时不能有空格
String s = scanner.next();
StackString stack = new StackString(s.length());
char[] c = s.toCharArray();
// 将字符串入栈
for (int i = 0; i < c.length; i++) {
stack.push(c[i]);
}
// 将字符串逆序打印
for (int i = 0; i < stack.maxSize; i++) {
System.out.print(stack.pop() + " ");
}
// 回文判断
System.out.println("\nInput a string:");
s = scanner.next();
stack = new StackString(s.length());
c = s.toCharArray();
// 将字符串入栈
for (int i = 0; i < c.length; i++) {
stack.push(c[i]);
}
System.out.println();
boolean b = true;
for (int i = 0; i < stack.maxSize; i++) {
if (c[i] != stack.pop()) {
b = false;
break;
}
}
if (b)
System.out.println("该字符串为回文!");
else
System.out.println("该字符串不是回文!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息