0

我正在尝试制作一个程序,该程序将使用堆栈和队列来检查单词是否为回文。

到目前为止,这是我的程序

import java.io.*;
import java.util.Scanner;

public class isPalindrome {


    public static boolean isPal(String str){

        QueueArrayBased queue = new QueueArrayBased();
        StackArrayBased stack = new StackArrayBased();
        for (int i = 0; i<=str.length(); i++){
            queue.enqueue(i);
            stack.push(i);
        }

        while (queue.isEmpty != 0){
            if (queue.dequeue() != stack.pop())
            return false;
        }
        return true;
    }


    public static void main (String [] args){
        Scanner keyboard = new Scanner(System.in);

        System.out.print("Type Word: ");
        String str = keyboard.nextLine();
        System.out.println("Word: " + str);

        System.out.println(isPal(str));
    }
}

当我编译时出现错误:

"isPalindrome.java:16: cannot find symbol
symbol  : variable isEmpty
location: class QueueArrayBased
        while (queue.isEmpty != 0)"

这是它给我一个错误的 isEmpty 方法

public boolean isEmpty()
  {
    return count == 0;
  }  // end isEmpty

我是 Java 新手,我真的不知道我做错了什么。

4

1 回答 1

4

您正在调用一个方法,所以它应该是queue.isEmpty() != 0.

当您这样做queue.isEmpty时,编译器会isEmptyqueue. 由于该变量不存在,因此会引发错误。

于 2015-03-30T16:52:25.507 回答