Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的阵型会越界?_Java_Arrays_Conways Game Of Life - Fatal编程技术网

Java 为什么我的阵型会越界?

Java 为什么我的阵型会越界?,java,arrays,conways-game-of-life,Java,Arrays,Conways Game Of Life,我试图访问数组的下一个元素,但它说我超出了范围 private void board(Scanner file) { String[][] board = new String[r][c]; //r=25 c=75 int col = 0; for(int row = 0; file.hasNextLine() && row<r ; row++){ board[row]=file.nextLine().split("");

我试图访问数组的下一个元素,但它说我超出了范围

private void board(Scanner file) {
    String[][] board = new String[r][c]; //r=25 c=75
    int col = 0;
    for(int row = 0; file.hasNextLine() && row<r ; row++){
        board[row]=file.nextLine().split("");
        neighbors(board,row,col);
        col++;
        System.out.println(file.next());
    }

}

private void neighbors(String[][] board, int row, int col) {
    if(col<c && "X".equals(board[row][col+1])){//right
        neighbors++;
        System.out.println(neighbors);
    }

}
专用作废板(扫描文件){
字符串[][]板=新字符串[r][c];//r=25 c=75
int col=0;

对于(int row=0;file.hasNextLine()&&row行
if(col
board[row]=file.nextLine().split(“”;
这一行将根据
file.nextLine()
split()
“返回的行生成任意长度的新数组”,因此
board[row]
现在指的数组的长度不能等于c,我想您的
split(“”
将返回大小为1的数组

因此,使用
col
另外,重新考虑您的
拆分(“”)
,例如,如果行是1 2 3
您可以使用
split(“”)

你要去哪里?我的邻居方法,当我检查右边的邻居时,如果你的列在右边没有邻居怎么办?你想过吗?好的,我想我明白了,所以我想找到列值,然后比较它,这样就不会比较两次了?问题与多少次无关您正在使用
col
。您正在检查
col
是否在边界内--很好。但是您没有使用
col
作为数组索引;您正在使用
col+1
。即使
col
在边界内,
col+1
也可能不在边界内。您可能想验证
c!=0&&col
我知道c!=0,它的final at 75.im在.X处拆分,这就是我之所以选择“”的原因,因为它不是一个空格。那么这是否会不正确?例如,第一行可能是………..xxxxxxxxxxxxx.X.X.X.X.X.xxxxx.X.X等。在示例中,您给出了希望从拆分中得到的元素是什么()是吗{xxxxxxxxx,x,x,x,x,x,x,xxxxx,x,…..等}如果是这样,您应该使用
split(“.”;
我可能认为您需要组成行的字符数组,如果是这样,您不能使用split(”),而应该使用
file.nextLine().tocharray();
并将数组类型更改为char数组