gpt4 book ai didi

Java:在 for 循环中使用 .charAt() 时出现 StringIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 21:53:31 25 4
gpt4 key购买 nike

提前感谢您阅读我的问题。

我正在制作一个 Hangman 游戏,我想打印出当前单词的隐藏版本,但我想在猜到正确的字母时更新它(也在正确的位置)。我一直在 StackOverflow 上查找,但似乎找不到我理解的解释。如果有人可以帮助我,那就太好了。 :D

我将发布与此相关的 for 循环。如果您需要的话,我可以发布更多代码。在我的代码前面,answerInput 和guessInputString 都是使用br.readLine() 方法从控制台读取的。

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);
}

}

感谢您为我提供的任何帮助!

最佳答案

您的代码假设guessInputStringreplacementString两者都至少有 inputAnswer 一样多的字符,这显然是错误的假设,因为您的循环仅保证 i inputAnswer 存在第 ' 个字符字符串。

顺便说一句,replacementString.replace(replacementString.charAt(i), inputAnswerChar)没有任何效果,因为它无法更改 String它的执行时间是(因为 String 是不可变的)。您必须分配新的 String此方法返回replacementString :

replacementString = replacementString.replace(replacementString.charAt(i), inputAnswerChar)

关于Java:在 for 循环中使用 .charAt() 时出现 StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34790574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com