【发布时间】:2022-01-09 11:14:10
【问题描述】:
我正在尝试制作一个 Java 程序来查找数组中连续数字的数量。例如,如果一个数组具有值 1,8,10,4,2,3,则有 4 个连续的数字 (1,2,3,4)。我已经创建了这个程序,但是我在第 28 行和第 31 行遇到了 ArrayIndexOutOfBoundsException 的错误,我该如何解决这个错误? (如果错误得到修复,我什至不确定我制作的程序是否可以工作)。注意:我知道网上有很多解决方案,但我是初学者,我正在尝试以更简单的方式来做。
import java.util.Arrays;
class Main {
public static void main(String[] args) {
consec();
}
static void consec()
{
int[] nums = {16, 4, 5, 200, 6, 7, 70, 8};
int counter=0;
Arrays.sort(nums);
for (int i=0; i < nums.length; i++)
if (i != nums.length - 1)
System.out.print(nums[i] + ", ");
else
System.out.print(nums[i]);
for (int i=0; i < nums.length; i++)
for (int j=i; j < nums.length - i; j++)
if (nums[j + 1] - 1 == nums[j])
counter++;
else if (nums[j+1]==counter)
System.out.print("Consective amount is" + counter);
}
}
【问题讨论】:
-
请阅读:How to debug small programs (
https://ericlippert.com/)。 --- 备注:如果我们写一篇文章的核心是异常,我们应该始终包含堆栈跟踪并突出显示抛出异常的行。 -
当
j == nums.length - 1(i == 0时发生),则nums[j + 1]越界。 -
好的,你对像
{ 4, 3, 10, 11, 6, 1, 4, 8, 7 }这样的数字数组有什么期望?序列是{10,11}, {3,4}, and {6,7,8}。最大的大小为3,但它们的总和为7。那你想要什么?
标签: java arrays for-loop if-statement