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、コンパイラは で変数isEmptyを探しますqueue。変数が存在しないため、エラーがスローされます。

于 2015-03-30T16:52:25.507 に答える