java.lang.ArrayIndexOutofBounds异常:10
我想不出问题出在哪里请有人帮忙。程序应该找到数组中重复值的索引并打印出来。输出java.lang.ArrayIndexOutOfBoundsException:10java.lang.ArrayIndexOutofBounds异常:10,java,Java,我想不出问题出在哪里请有人帮忙。程序应该找到数组中重复值的索引并打印出来。输出java.lang.ArrayIndexOutOfBoundsException:10 private static String s = ""; private static int num = 0; public static void main(String[] args) { int[] array = { 1, 5, 3, 8, 2, 3, 7, 1, 9, 3 }; for (int i
private static String s = "";
private static int num = 0;
public static void main(String[] args) {
int[] array = { 1, 5, 3, 8, 2, 3, 7, 1, 9, 3 };
for (int i = 1; i <= array.length; ++i) {
while (num <= array.length - 2 && array[num] == array[i]) {
s += i + ",";
num += 1;
}
}
System.out.println("index 0 are at positions" +s);
System.out.println();
}
这应该对你有用。数组的长度是10,所以最后一个索引是9,而不是10!从0开始 array.length是10,但数组中的最后一个索引是9,因为数组索引从0开始
for循环中的停止条件应该是i首先,应该从0开始,而不是从索引1开始。其次,你应该使用<符号
for (int i = 0; i < array.length; ++i)
只有元素的最大数量设置为10,这意味着索引编号将从0开始 您只能在第9个元素之前获取元素
java.lang.ArrayIndexOutOfBoundsException: 10
很明显,你没有第11个元素
for (int i = 1; i < array.length; ++i) {
while (num <= array.length - 2 && array[num] == array[i]) {
s += i + ",";
num += 1;
}
}
这对你来说就足够了。你花在写这个问题上的时间最好花在谷歌上键入java数组索引越界异常上。排名前10位的命中率与这里的问题完全相同。长度为10表示数组[0-9]的位置0是第一位,位置1是第二位。感谢您的帮助,但上面的代码不会在重复位置打印数组的索引。它打印:索引0位于位置0,1,2,3,4,5,6,7,8,9,
for (int i = 1; i < array.length; ++i) {
while (num <= array.length - 2 && array[num] == array[i]) {
s += i + ",";
num += 1;
}
}