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("该字符串不是回文!"); } }
相关文章推荐
- 使用堆栈判断字符串是否回文
- 14、JAVA 判断一个数/字符串是不是回文?实现字符串的逆序,如“abcd”变成“dcba”
- 使用java判断字符串是否日日期类型
- java判断字符串是否为回文?
- 判断是否为回文字符串,逆序输出字符串
- Java使用正则表达式判断字符串是否以字符开始
- 用堆栈判断字符串是不是回文
- StringBuffer --reverse() JAVA判断字符串是否回文
- java判断字符串是否回文
- Java:计算回文数,输入一个五位正整数,使用数组判断它是不是回文数
- Java实现回文字符串判断
- java判断字符串是否回文
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 判断字符串中有多少中文字符*java正则表达式使用
- java判断回文字符串的几种方法
- java关于回文字符串的判断方法
- Java判断字符串是否是回文
- C语言:判断一个字符串是否为回问字符串(回文字符串也是一个字符串,但是原字符串和字符串逆序之后一样,比如”abcba","cddc"就是回文字符串
- 判断字符串是不是回文,使用C++、Python两种语言
- java判断一个字符串是否是回文