我需要解决一个填字游戏,一种方法是在拼图中放一个字。
[...]
好的,我现在借助您的答案更改了代码。
现在是这样的:
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/