2017-12-21 3 views
-3

스윙에서 행맨 게임을 만들고 사용자가 입력 한 값이 해당 단어인지 확인하는 섹션을 만들고 있습니다. 단어의 각 문자를 배열에 넣었습니다. 그러나 내가 알고있는 편지를 입력 할 때 그것이 배열에 있다는 것은 그것이 편지가 아니라고 출력합니다. .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

이클립스는 개발 환경에 불과합니다. 이것은 자바 프로그래밍 언어의 질문입니다. –

+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

** 예외 * * 편집. –

0

또한 사용하여 확인할 수 있습니다 같이 IndexOf> 0

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

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

당신이 액세스하는 의미 널 포인터를 얻는 경우 존재하지 않거나 선언되지 않은 변수.

관련 문제