You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java多维数组越界报错:向三维int数组填充二维String数组时索引越界

异常原因

  • 控制sudoku第三维索引的变量c仅在所有循环开始前初始化了一次为0,没有在每次外层循环(控制第二维索引b的循环)启动时重置:
    第一次内层循环执行时,j从9到17共执行9次,c会从0自增到9;进入下一轮外层循环时,c仍保留9的数值,此时访问sudoku[1][b][9]超出了第三维的合法索引范围(长度为9的数组合法索引是0~8),直接触发数组越界异常。
  • 额外提醒:当前外层循环条件为i < 6,最多只能填充6行数据,如果需要完整填充9行的数独结构,需要调整该循环条件。

修复方案

每次外层循环启动时重置c为0,按需调整外层循环次数即可,修正后的代码如下:

//sudoku1
int b = 0;
// 要完整填充9行就保留i < 9,若只需要填充6行可改回i < 6
for (int i = 0; i < 9; i++) {
    int c = 0; // 每填充新的一行前重置列索引为0
    for (int j = 9; j < 18; j++) {
        sudoku[1][b][c] = Integer.valueOf(tmp[i][j]);
        c++;
    }
    b++;
}

内容的提问来源于stack exchange,提问作者Ersin Yılmaz Aslan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:54:02