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