2017-03-04 201 views
-3

所以我有这段代码。ava.lang.StringIndexOutOfBoundsException:字符串索引超出范围:9在java.lang.String.charAt(String.java:658)

class Hangman { 
public static void main(String[] args) { 
    char LetterGuess; 
    int x; 
    int num = 0;         //Number of letters in a word 
    int y = 0; //(int)(Math.random() * 16); 
    char CurrLet; 
    String word = "yes" ; 
    byte[] Guess = new byte[15]; 

    switch(y) { 

     case 0: 
      word = "blindfold" ; 
      num = word.length(); 
      break; 
    } 
    for(boolean guessed = false; guessed = true;) { 

     for(x = 0; x < num +1; x++) { 
       if(Guess[x] == 1) { 
        CurrLet = word.charAt(x); 
        System.out.print(CurrLet); 
       } else { 
        System.out.print(" _"); 
      } 
     } 

     System.out.println(""); 
     System.out.println(""); 
     LetterGuess = Keyboard.readChar(); 

     for(x = 0; x < num +1; x++) { 
      CurrLet = word.charAt(x); 
      if(LetterGuess == CurrLet) { 
       Guess[x] = 1; 
      } 
     } 


    } 

} 

}

它编译罚款,但是当我在第一个字符类型并输入它给了我这个错误:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 9 at java.lang.String.charAt(String.java:658) at Hangman.main(Hangman.java:34)

我所试图做的是阅读的字符掉的字符串而不需要创建一个包含所有字符的数组。任何帮助?

回答

0

变化

for(x = 0; x < num +1; x++) 

for(x = 0; x < num; x++) 

你也可能意味着

for(boolean guessed = false; guessed == true;) // notice == instead 

,然后这个(外)for循环中这个标志设置为true

相关问题