簡體   English   中英

Java:在for循環中使用.charAt()時,StringIndexOutOfBoundsException

[英]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);
    }

}

謝謝您能給我的任何幫助!

您的代碼假設guessInputStringreplacementString字符數至少與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM