我的java之路——判断字符串是不是回文串

来源:互联网 发布:剑侠情缘3mac版 编辑:程序博客网 时间:2024/06/16 05:14

在这个题目里我自己写了一个操作字符的栈,用来判断字符串是不是回文;

我现在竟然还不知道怎么从键盘输入内容,昨天查了帮助文档才知道一点,原来自己不是一般的菜,惭愧啊

自己写的字符栈public final class MyStack {int length;//记录栈的存储情况char ca[];public MyStack(int size){length = 0;ca = new char[size];}public void push(char c){this.ca[length++] = c;}public boolean check(char c){if(c!=this.ca[--length])//判断两个字符是不是相等,相等则返回true,不能则返回false{return false;}return true;}}/* * 问题:编写程序要求判断从键盘输入的字符串是否是会问字符串 * 思路:利用栈的存储结构来判断,把前一半压栈,后一半一个一个比较如果相等则弹栈,不等则直接输出不是回文数组 * 如果比对完,那么则是回文串 * */import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class ReserveStringDemo {public static void main(String[] args) throws IOException {ReserveStringDemo rs = new ReserveStringDemo();rs.go();}public void go() throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//DataInputStream类的readLine方法那里的推荐方式System.out.println("请输入一个字符串:");String str = br.readLine();//读入一个字符串int i = 0;int strlen = str.length();//自己写的一个栈,可以动态分配空间MyStack ms = new MyStack(strlen/2);//前一半压栈while(i<strlen/2){ms.push(str.charAt(i++));}i =(strlen+1)/2;//考虑到字符串字符个数的奇偶//后一半比较while(i<strlen&&ms.check(str.charAt(i++))){}//利用三目运算符?:来拼接结果字符串System.out.println("该字符串"+(i>=strlen?"是":"不是")+"回文字符串");}}


原创粉丝点击