Mein Programm nimmt derzeit ein zufälliges Wort und wird in Bindestrichen basierend darauf, wie viele Buchstaben in dem Wort sind. Ich stelle dann fest, ob ein Buchstabe erraten ist, aber ich konnte nicht herausfinden, wie der richtig ermittelte Brief die Bindestriche entsprechend ersetzt. Ich habe auf der Website nach möglichen Lösungen gesucht, konnte aber nicht für meinen aktuellen Code arbeiten.Mit Bindestrichen in vermutete Buchstaben ändern
Code:
public String hiddenWord(){
word = randomWord.getRandomWord();
String dashes = word.replaceAll("[^ ]", " _ ");
return dashes;
}
public String guessNotification(){
if(word.indexOf(hv.keyChar)!=-1 && (hv.keyChar >= 'a' && hv.keyChar <= 'z')) {
letterGuessed = "There is a " + hv.keyChar + " in the word";
}
else if(word.indexOf(hv.keyChar)==-1 && (hv.keyChar >= 'a' && hv.keyChar <= 'z')) {
letterGuessed = "No " + hv.keyChar + " in the word";
guesses++;
System.out.println(guesses);
}
else{
letterGuessed = "Not a valid letter";
}
return letterGuessed;
}
public void newGame() {
hv.createNotification(this, size);
guesses = 0;
System.out.println(word);
}
}
aussehen könnten Sie werden das Wort erraten so weit in einer Variablen speichern müssen, sagen 'guessedWord'. Sie können 'String' nicht verwenden, da Java'String's unveränderlich sind (sie können nicht geändert werden). Sie können 'StringBuffer' oder ein' char' Array verwenden. 'word.indexOf (hv.keyChar)' gibt Ihnen den Index des Buchstabens in dem Wort, das der Benutzer erraten hat. Verwenden Sie diesen Index, um das entsprechende Zeichen in "erratedWord" einzustellen. Wenn Sie zum Beispiel Bindestriche als StringBuffer definiert haben, können Sie 'gatedWord.setCharAt (word.indexOf (hv.keyChar), hv.keyChar)' verwenden. –
Wenn Sie jede Instanz des vom Benutzer richtig erratenen Zeichens ersetzen möchten, müssen Sie 'word.indexOf' wiederholt aufrufen, um jeden Index zu erhalten, bis er -1 zurückgibt. –
@DavidChoweller Ich bin mir nicht sicher, ob ich Sie richtig verstehe, also habe ich den obigen Code bearbeitet, um die Änderungen widerzuspiegeln, die ich aufgrund Ihres Vorschlags gemacht habe. Ich bin verwirrt darüber, was ich mit dem erratenen Brief anfangen soll. –