2016-04-25 11 views
1

Ich versuche, das Zeichen zu vergleichen, das der Benutzer in das zufällig generierte Wort eingibt, um zu sehen, ob es übereinstimmt oder nicht ... was kann ich verwenden, um sie zu vergleichen?Wie vergleicht man Zeichen mit Zeichen in einem Wort? (Java)

if (playerChoice.equals(g.originalWord.charAt(7))) { // 
     g.revealHiddenLetter(); 
    }  
    else { 
     System.out.println(g.guessThisWord); 
     guesses--;// if player is wrong they lose a guess 
     System.out.println("Guesses Left: " + guesses); 
    } 
+0

Sie verwenden die 'substring' oder' charAt' Methoden können konvertieren Zeichen zu vergleichen. 'substring' gibt eine' String' zurück und 'charAt' gibt ein' char' zurück. – Logan

+0

Sie können 'String.indexOf' verwenden, um den Index eines Buchstaben in einem String oder -1 zu finden, wenn nicht gefunden. –

Antwort

0

Iterate über die Charaktere in dem verborgenen Wort, könnten Sie eine Methode verwenden, wie zum Beispiel:

private boolean charInWord(char playerChoice) { 
    for(int i = 0; i < originalWord.length(); i++) { 
      if(originalWord.charAt(i) == playerChoice) { 
       return true; 
      } 
     } 
    return false; 
} 

Dies wird true zurück, wenn der Brief innerhalb des verborgenen Wortes existiert.

1

Charaktere vergleichen Sie das == Symbol verwenden nicht die Methode equals(), da in Java-Charaktere als integers.So vertreten sind, was Sie werden achived tun wollen, wie folgt:

if (playerChoice == g.originalWord.charAt(7)) { // 
    g.revealHiddenLetter(); 
}  
else { 
    System.out.println(g.guessThisWord); 
    guesses--;// if player is wrong they lose a guess 
    System.out.println("Guesses Left: " + guesses); 
} 
+1

Wichtig zu beachten, dass Zeichen nur in Ganzzahlen umgewandelt werden, wenn Sie sie gegen ganzzahlige Typen auswerten. Der Grund, warum Sie '==' verwenden können, ist, weil ein Zeichen ein primitiver Typ ist, nicht wegen seiner Implementierung. – flakes

+0

Danke für die Korrektur. – theVoid

0

Ein leichter Weg, dies zu lösen, ist nur das Zeichen in einen String der Länge 1 und die vorhandene String.contains() -Methode

char guess = 'h'; 
String originalWord = "hello"; 
System.out.println(originalWord.contains(Character.toString(guess))); 
Verwandte Themen