![](/img/trans.png)
[英]StringIndexOutOfBoundsException while loop with charat()
[英]Java: StringIndexOutOfBoundsException when using .charAt() in for-loop
預先感謝您閱讀有關我的問題。
我正在制作一個《 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);
}
}
謝謝您能給我的任何幫助!
您的代碼假設guessInputString
和replacementString
字符數至少與inputAnswer
一樣多,這顯然是錯誤的,因為您的循環僅保證inputAnswer
String的第i
個字符存在。
順便說一句, replacementString.replace(replacementString.charAt(i), inputAnswerChar)
無效,因為它不能更改執行的String
(因為String
是不可變的)。 您必須將此方法返回的新String
分配回replacementString
:
replacementString = replacementString.replace(replacementString.charAt(i), inputAnswerChar)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.