4

私はプログラミングが初めてで、基本的な推測ゲームを作成しようとしていますが、このエラーがあります。「推測」を に設定したので、助けが必要です。charそれを文字の配列と比較したいのですが、いくつかの異なるアプローチを試しましたが、まだ喜びはありません。

下部にある if ステートメントで次のエラーが表示されます。

(guess.equals(wordContainer[j]))

前もって感謝します。

私のコード:

import java.util.Scanner;  

public class GuessingGame {

    public static void main(String args[]) {

        Scanner keyboard = new Scanner(System.in);

        String wordArray[] = {"aardvarks", "determine", "different", "greatness", "miserable", "trappings", "valuables", "xylophone"};

        double rand = Math.random() * 8;
        int x = 0;      
        x = (int)rand;      

        System.out.println(x);

        String word = wordArray[x];
        int wordCount = word.length();

        System.out.println(word);
       // System.out.println(wordCount);

        char wordContainer[] = new char[wordCount];
        char wordHiddenContainer[] = new char[wordCount];

        String input;
        char guess;

        System.out.print("Enter your guess(a-z): ");
        input = keyboard.next();
        guess = input.charAt(0);

        for ( int i = 0 ; i < wordCount ; i++ ) {           
            wordContainer[i] = word.charAt(i);
            wordHiddenContainer[i] = '*';           
        }

        System.out.println(wordContainer);
        System.out.println(wordHiddenContainer);

        for (int j = 0; j <  word.length(); j++ ) {
            if(guess.equals(wordContainer[j])) {                
                wordHiddenContainer[j] = guess;

            }           
        }
    }   
}
4

2 に答える 2

10

プリミティブは と比較され==ます。chars をラッパー クラスCharacterに変換すると、 .equals().

どちらかが変わる

  1. char guess;Character guess;

    また

  2. if(guess.equals(wordContainer[j]))if(guess == wordContainer[j]))

于 2013-09-13T08:22:05.433 に答える
2

equals()Object クラスに含まれ、Java で作成されたすべてのクラスに継承によって渡されるメソッドです。また、メソッドであるため、プリミティブではなくオブジェクトからのみ呼び出すことができます。

guessこのように変数を比較する必要があります

if(guess==wordContainer[j]) {

それが役に立てば幸い。

于 2013-09-13T08:31:43.487 に答える