gpt4 book ai didi

Java数组 - 初始化数组上的越界异常

转载 作者:行者123 更新时间:2023-11-29 10:05:26 25 4
gpt4 key购买 nike

我在“calendarTable[i][j] = str;”上遇到越界异常下面一行。我觉得这很有趣,因为我将它初始化为 15,而我只迭代到 14。我已经尝试初始化为 20000,无论我制作的数组有多大,它仍然会出现索引越界错误。

public static void main(String[] args) {
Calendar cal = new GregorianCalendar();
cal.set(2012, 2, 1);
cal.set(Calendar.DAY_OF_WEEK, 1);
int dayOfMonth = 1;
Object[][] calendarTable = new Object[15][15];
calendarTable[0] = new String[]{"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"};
for (int i = 0; i < 14; i++) {
for (int j = 0; j < 14; j++) {
//calendarTable[i][j] = dayOfMonth++;
if(i%2 == 0){
String str = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
calendarTable[i][j] = str;
cal.add(Calendar.DAY_OF_YEAR, 1);
}else{
calendarTable[i][j] = dayOfMonth;
}
calendarTable[i * 2 + 1][j] = "TEST";
}
}
for (int i = 0; i < 14; i++) {
for (int j = 0; j < 14; j++) {
System.out.print(calendarTable[i][j]);
}
System.out.println("");
}
}

最佳答案

您已将其初始化为 15*15 , 但随后立即用七项数组替换了初始条目。当您进入迭代时,元素 0 处的数组只有七个项目,而不是十五个。如果您想保留它 15*15 , 将日期的名称复制到 15 项的数组中。

System.arrayCopy(
new String[]{"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"}
, 0
, calendarTable[0]
, 0
, 7);

此外,如果您希望索引为数组的全长,请使用 i != 15 , i < 15 , 或 i <= 14 .

关于Java数组 - 初始化数组上的越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9537587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com