[英]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数组索引从
0
到length -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.