我需要解决一个填字游戏,一种方法是在拼图中放一个字。
[...]

好的,我现在借助您的答案更改了代码。
现在是这样的:

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;
}


但现在我得到以下错误:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 18
at CrosswordPuzzleSolver.setWord(CrosswordPuzzleSolver.java:224)


你能再帮我一次吗?

最佳答案

这意味着w大于字符串的长度。考虑改为这样做:

int w = wordsSpecEntry.length();       //length of the word

关于java - StringIndexOutOfBoundsException:字符串索引超出范围:4,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27217815/

10-11 05:12