提前感谢您阅读我的问题。
我正在制作一个Hangman游戏,我想打印出当前单词的隐藏版本,但我想在猜到正确的字母时更新它(在正确的位置)。我一直在寻找StackOverflow,但我似乎无法找到我理解的解释。如果有人可以帮助我,那就太好了。 :d
我将发布这是关于for循环的。如果您需要,我可以发布更多代码。使用br.readLine()方法在我的代码中从控制台读取answerInput和guessInputString。
for (int i = 0; i < inputAnswer.length(); i++) {
char inputAnswerChar = inputAnswer.charAt(i);
char guessInputChar =guessInputString.charAt(i);
if (inputAnswerChar == guessInputChar) {
replacementString.replace(replacementString.charAt(i), inputAnswerChar);
}
}
感谢您提供给我的任何帮助!
答案 0 :(得分:3)
您的代码假设guessInputString
和replacementString
的字符数至少与inputAnswer
一样多,这显然是错误的,因为您的循环只能保证{{1} i
String。
顺便说一句,inputAnswer
没有效果,因为它无法更改它执行的replacementString.replace(replacementString.charAt(i), inputAnswerChar)
(因为String
是不可变的)。您必须将此方法返回的新String
分配回String
:
replacementString