Java 合并阵列时发生运行时错误
我目前正在尝试合并数组,并且我已经完成了大部分程序,但是我一直收到一个错误。我试着修改它,我不断地把自己挖到一个洞里,离正确的方向越来越远,所以我回到了我原来的代码 我的代码:Java 合并阵列时发生运行时错误,java,runtime-error,Java,Runtime Error,我目前正在尝试合并数组,并且我已经完成了大部分程序,但是我一直收到一个错误。我试着修改它,我不断地把自己挖到一个洞里,离正确的方向越来越远,所以我回到了我原来的代码 我的代码: import java.util.Scanner; import java.lang.Math; class Main { public static void main(String[] args){ Scanner scan = new Scanner (System.in); Sys
import java.util.Scanner;
import java.lang.Math;
class Main {
public static void main(String[] args){
Scanner scan = new Scanner (System.in);
System.out.println ("Enter the values for the first array, up to 10000 values, enter a negative number to quit");
int[] array1 = new int[10000];
int[] array2 = new int[10000];
int input = 0; //input for arrays
int count = 0; //count for element position
//adds input into first array
while (input >= 0) {
input = scan.nextInt();
array1[count] = input;
count++;
}
count = 0;
//adds input into second array
System.out.println ("Enter the values for the second array, up to 10000 values, enter a negative number to quit");
input = 0;
while (input >= 0) {
input = scan.nextInt();
array2[count] = input;
count++;
}
//System.out.println(java.util.Arrays.toString(array1));
//System.out.println(java.util.Arrays.toString(array2));
//finds length of the input arrays
int num1 = 0;
while (array1[num1] >= 0 ){
num1++;
}
int num2 = 0;
while (array2[num2] >= 0) {
num2++;
}
//checks if arrays are input in order
for (int i = 0; i < num1 - 1; i++) {
if (array1[i] > array1[i + 1])
count = -15;
}
for (int i = 0; i < num2 - 1; i++) {
if (array2[i] > array2[i + 1])
count = -15;
}
//outputs first array
System.out.println("First Array: ");
for (int i = 0; i < num1; i++) {
System.out.print(array1[i]+ " ");
}
System.out.println();
System.out.println();
//outputs second array
System.out.println("Second Array: ");
for (int i = 0; i < num2; i++) {
System.out.print(array2[i]+ " ");
}
System.out.println();
//outputs if array if no errors
if (count == -15){
System.out.println();
System.out.println ("ERROR: Array not in correct order");
}
else {
String answer = "";
//checks for biggest number
int biggest = 0;
for (int i = 0; i < num1; i++) {
if (array1[i] > biggest)
biggest = array1[i];
}
for (int i = 0; i < num2; i++) {
if (array2[i] > biggest)
biggest = array2[i];
}
System.out.println ();
//merges the arrays
for (int i = 0; i <= biggest; i++) {
for (int x = 0; x < num1; x++) {
if (array1[x] == i)
answer += i + " ";
}
for (int x = 0; x < num2; x++) {
if (array2[x] == i)
answer += i + " ";
}
}
System.out.println ("Merged Array: ");
System.out.println (answer);
}
}
}
import java.util.Scanner;
导入java.lang.Math;
类主{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入第一个数组的值,最多10000个值,输入负数退出”);
int[]数组1=新int[10000];
int[]array2=新int[10000];
int input=0;//数组的输入
int count=0;//元素位置的计数
//将输入添加到第一个数组中
while(输入>=0){
输入=scan.nextInt();
数组1[计数]=输入;
计数++;
}
计数=0;
//将输入添加到第二个数组中
System.out.println(“输入第二个数组的值,最多10000个值,输入负数退出”);
输入=0;
while(输入>=0){
输入=scan.nextInt();
array2[count]=输入;
计数++;
}
//System.out.println(java.util.Arrays.toString(array1));
//System.out.println(java.util.Arrays.toString(array2));
//查找输入数组的长度
int num1=0;
而(数组1[num1]>=0){
num1++;
}
int num2=0;
而(array2[num2]>=0){
num2++;
}
//检查数组是否按顺序输入
对于(int i=0;i数组1[i+1])
计数=-15;
}
对于(int i=0;iarray2[i+1])
计数=-15;
}
//输出第一个阵列
System.out.println(“第一个数组:”);
对于(int i=0;i最大值)
最大=阵列1[i];
}
对于(int i=0;i最大值)
最大=阵列2[i];
}
System.out.println();
//合并阵列
对于(int i=0;我尝试只发布相关的代码段;目前代码段太长,使人们无法理解它。从调用堆栈中,异常源自第29行。从那里开始您的调查方法测试和assertRegex在哪里?它实际上位于从main开始的assertRegex第94行
<b>Runtime Error</b>
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Main.main(Main.java:243)
at Ideone.assertRegex(Main.java:94)
at Ideone.test(Main.java:42)
at Ideone.main(Main.java:29)