高分悬赏:Java语言定义一个堆栈类,然后用这个堆栈类实现对字符串的输入是否是回文字符串的判断

高分悬赏:Java语言定义一个堆栈类,然后用这个堆栈类实现对字符串的输入是否是回文字符串的判断

https://bbs.csdn.net/topics/360109252

不用堆栈也能做回文字符串,你要吗

public static void method() {
Scanner in = new Scanner(System.in);
System.out.println("加入我的QQ:577976846,以后有问题可以直接找我");
System.out.println("加入我的QQ:577976846,以后有问题可以直接找我");
System.out.println("加入我的QQ:577976846,以后有问题可以直接找我");
System.out.print("请输入你的字符串:");
String zifuch = in.nextLine();
int num = zifuch.length();
if(num == 1)
System.out.println("输入的字符串是回文字符串");
for(int i=0;i<num/2;i++) {
boolean flag =true;
System.out.println(zifuch.substring(i, i+1));
System.out.println(zifuch.substring(num-i-1, num-i));
if(zifuch.substring(i, i+1).equals(zifuch.substring(num-i-1, num-i))) {
flag = true;
}else {
System.out.println("输入的字符串不是回文字符串");
break;
}
if(i==(num/2-1)) {
System.out.println("输入的字符串是回文字符串");
}
}
}
public static void main(String[] args) {
method();
}

也不知道为啥非要堆栈,按照你的要求写了一个,试试吧

public class MyStack {
    private List<Object> objs = new ArrayList<Object>();

    private Integer index = -1;

    public void push(Object obj) {
        objs.add(obj);
        index ++;
    }

    public Object pull() {
        if(index < 0) {
            return null;
        }
        Object obj = objs.get(index);
        index--;
        return obj;
    }

    public boolean hasObj() {
        return index >= 0 ? true : false;
    }

    public static void main(String[] args) {
        MyStack myStack = new MyStack();

        String a = "12233221";
        //入栈
        for(int i=0;i<a.length();i++) {
            myStack.push(a.charAt(i));
        }

        //出栈
        StringBuffer str = new StringBuffer();
        while(myStack.hasObj()) {
            Object obj = myStack.pull();
            str.append(String.valueOf(obj));
        }

        if(str.toString().equals(a)) {
            System.out.println("字符串(" +a + ")是回文");
        } else {
            System.out.println("字符串(" +a + ")不是回文");
        }

    }
}