2017-12-21 12 views
-3

私はSwingでハングマンゲームを作っていますが、ユーザーが入力した値が単語に含まれていないかどうかをチェックするセクションで作業しています。私は単語の各文字を配列に入れました。しかし、私が知っている手紙を入力すると、それは手紙ではないことが配列に記載されています。 .containsを使用すると、エラーメッセージが作成されます。文字列配列が.equalsで動作しない

下記の問題に関するコード。

private void checkcorrect() { 
    for (int i = 0; i < word.length(); i++) { 
     System.out.println(i); 
     if(wordch[i].equals(inputString)) { 
      System.out.println("Success"); 
      letter = true; 
     } 
    } 

    if(letter==true) { 
     System.out.println("Was a letter"); 
    }else { 
     System.out.println("Not a letter"); 
    } 
} 

private class TextFieldListener implements ActionListener{ 
    public void actionPerformed(ActionEvent evt){ 
     String inputString = userInput.getText(); 
     userInput.setText(""); 
     System.out.println(inputString); 
     checkcorrect(); 
    } 
} 
+0

Eclipseはあなたの開発環境です。これはJavaプログラミング言語の質問です。 –

+0

あなたのアプローチは正しかったようですが、InputStringがあなたの 'ActionListener'から' checkcorrect() 'メソッドにどのようになっているかわかりません。これを行う簡単な方法については 'String.contains()'も見てください。 – markbernard

+2

また、私たちはどのようなワードがあるのか​​分かりません。問題を再現した完全な最小例を投稿してください。 –

答えて

0

試み ".contains"

String word = "test"; 
    String[] letter = { "t"}; 
    boolean hasTheLetter = word.contains(letter[0]); 
    System.out.println(hasTheLetter); 
+0

ヒントはありがとうございますが、これを試してみるとエラーメッセージが生成されます。これはスレッド "AWT-EventQueue- 0 "java.lang.NullPointerException \t at java.lang.String.contains(String.java:2133) \t HangMan.Test.checkcorrect(Test.java:101) –

+0

**そのような例外出力は** question * *編集として*。 –

0

あなたがアクセスしていることを意味し、nullポインタを取得している場合は、またのindexOf> 0

String word = "abcdef"; 
String[] letter = {"d"}; 

boolean foundLetter = (word.indexOf(letter[0]) > 0); 
if (foundLetter) 
    // something 

を使用してチェックすることができます存在しない/まだ宣言されていない変数。

関連する問題