简体   繁体   English

从单独的类文档堆栈溢出错误访问char数组

[英]accessing char array from a separate class doc stack overflow error

I am new to java and i keep throwing this exception is there an error with the way i used mysWord.length or is the issue with .charAt(i)? 我是java的新手,我一直抛出此异常,我使用mysWord.length的方式是否有错误,还是.charAt(i)的问题?

public static int setGuessdLetters(String mysWord)
{
    word.letters = new char[mysWord.length()];
    word.guesdletters = new char[mysWord.length()];

    for(int i = 0; i <= mysWord.length(); i++)
    {
        word.letters[i] = mysWord.charAt(i);
        word.guesdletters[i] = '_';
    }

    return(mysWord.length());
}

Error reads: 错误读取:

Please enter a word (14 character maximum): apple 请输入一个单词(最多14个字符):苹果

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.charAt(String.java:658)
at hangman.Hangman.setGuessdLetters(Hangman.java:206)
at hangman.Hangman.main(Hangman.java:258)

Java Result: 1 Java结果:1

BUILD SUCCESSFUL (total time: 2 seconds) 建立成功(总时间:2秒)

Just replace less than equalto(<=) with less than(<) . 只需将less than equalto(<=)替换为less than(<)

Java array indexing begins from 0 to length -1 .That is why you are getting OutOfBoundsException Java数组索引从0length -1开始,这就是为什么要获取OutOfBoundsException

for(int i = 0; i < mysWord.length(); i++)
    {
        word.letters[i] = mysWord.charAt(i);
        word.guesdletters[i] = '_';
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM