Java 尽管循环在数组长度范围内,但仍存在越界异常
因此,程序应该根据用户输入制作一个奇数大小的数组,大小介于3和11之间,然后在特定位置用字符填充该板以获得模式。一切都很顺利,直到我尝试返回数组,该数组给了我2个越界异常,即使我将循环设置为小于维度。我在这里以5为例,试图得到一个5乘5的数组。这是主要的Java 尽管循环在数组长度范围内,但仍存在越界异常,java,arrays,char,2d,indexoutofboundsexception,Java,Arrays,Char,2d,Indexoutofboundsexception,因此,程序应该根据用户输入制作一个奇数大小的数组,大小介于3和11之间,然后在特定位置用字符填充该板以获得模式。一切都很顺利,直到我尝试返回数组,该数组给了我2个越界异常,即使我将循环设置为小于维度。我在这里以5为例,试图得到一个5乘5的数组。这是主要的 public static void main (String [] args) { int dimension = findDimension(); char [] [] array2d = new char [dimens
public static void main (String [] args) {
int dimension = findDimension();
char [] [] array2d = new char [dimension] [dimension];
char star = '*';
array2d = leftDiagonal(star, dimension); // Get out of bounds here
print(array2d);
}
请求用户输入“findDimension()的方法”
方法打印数组
public static void print(char [] [] arrayParam) {
System.out.println("-----------");
System.out.println(arrayParam);
System.out.println("-----------");
}
方法设置模式“Left对角线”
技术上应该是这样的
-----------
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
-----------
-----------
*
*
*
*
*
-----------
但目前我只想得到任何输出。我原本计划用空格“”填充所有空格,然后用字符填充需要的空格,但我甚至无法先打印出数组。感谢所有愿意提供帮助的人。由于内部循环条件,出现错误
publicstaticchar[][]左对角(charstarparam,int-dimenParam){
char[][]leftD=新的char[dimenParam][dimenParam];
对于(int i=0;ij
leftD[i][j]=starParam;//在此处获取错误
}
}
返回leftD;
}
有很多方法可以解决这个问题。
您可以只打印阵列而不初始化它
publicstaticchar[][]左对角(charstarparam,int-dimenParam){
char[][]leftD=新的char[dimenParam][dimenParam];
对于(int i=0;i
谢谢你,我觉得没有早点注意到这一点很傻。我现在打印了一些东西,但我得到的是内存地址,而不是任何预期的输出。我将数组“array2d”设置为与我的left对角线方法相等,那么为什么会发生这种情况?我需要一个循环来打印内容吗?编辑了我的答案我需要一个循环来打印内容吗?
没错!哦,对不起,我又住院了。这是我的一个坏习惯,谢谢你的帮助。很高兴和你谈话。祝你今天愉快D如果答案有帮助,请删除,然后。。。接受它如果你想说“谢谢”,就投票或接受对方的答案,或者简单地通过给别人的问题提供一个很好的答案来提前回答。
-----------
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
-----------
-----------
*
*
*
*
*
-----------