Java StringIndexOutOfBoundsException:字符串索引超出范围:4
我需要解决一个纵横字谜,其中一种方法是在字谜中放一个单词。 [……] 好的,我现在在你的答案的帮助下更改了代码。 现在是这样:Java StringIndexOutOfBoundsException:字符串索引超出范围:4,java,string,indexoutofboundsexception,Java,String,Indexoutofboundsexception,我需要解决一个纵横字谜,其中一种方法是在字谜中放一个单词。 [……] 好的,我现在在你的答案的帮助下更改了代码。 现在是这样: public static char[][] setWord(int[] gridSpecEntry, String wordsSpecEntry, char[][] grid) { if (wordsSpecEntry.length()>0&&wordsSpecEntry.length()==gridSpecEnt
public static char[][] setWord(int[] gridSpecEntry, String wordsSpecEntry,
char[][] grid) {
if (wordsSpecEntry.length()>0&&wordsSpecEntry.length()==gridSpecEntry[2])
{
int y = gridSpecEntry[0];
int x = gridSpecEntry[1];
int w = gridSpecEntry[2];
int r = gridSpecEntry[3];
if (r == 0) {
for (int b = 0; b < wordsSpecEntry.length(); b++) {
grid[y][x + b] = wordsSpecEntry.charAt(b);//line 224
}
} else {
for (int a = 0; a < wordsSpecEntry.length(); a++) {
grid[y + a][x] = wordsSpecEntry.charAt(a);
}
}
}
return grid;
}
请您再帮我一次好吗?如果出现以下错误,则此参数不正确:
int w = gridSpecEntry[2]; //length of the word
或者,如果不是单词specentry
的长度,只需添加另一个验证:
for (int i = 0; i < w && i < wordsSpecEntry.length(); i++) {
for(inti=0;i <代码> > p>这意味着<代码> w <代码>比字符串的长度大。请考虑这样做:
int w = wordsSpecEntry.length(); //length of the word
如果您使用的是Eclipse,请参阅:或对于Netbeans,请参阅:请不要在人们开始回答后更改问题。堆栈溢出应该是问题和答案的存储库。如果答案与问题不匹配,则会变得可笑,因为问题已更改。如果您有新问题,请提出新问题。
int w = wordsSpecEntry.length(); //length of the word