java - 合并2个数组

标签 java arrays

所以我正在编写一个程序来打印合并序列,假设只有两个输入。打印序列后,会打印一个空行。此外,该程序还打印合并后的数组,每行一个字符串。数组的大小不超过 10。这是我到目前为止的代码:

import java.util.Scanner;
public class Demo {
    public static int readInput(Scanner myScanner, String[] input) {
        boolean streamEnded = false;
        int index = 0;

        while (!streamEnded && myScanner.hasNext()) {

            String value = myScanner.nextLine();

            if (value.length() == 0)  {
                streamEnded = true;
                input[index] = value;
            } else {
                input[index] = value;
                index++;

            }
        } 
    return index;

    }
    public static void printArray(String[] values, int size) {
            for (int index = 0; index < size; index++) {
                System.out.println(values[index]);
    }

    public static void main(String[] args) {
        int size = 10;
        String[] input1 = new String[size];
        String[] input2 = new String[size];
        String[] merge = new String[size*2];

        Scanner aScanner = new Scanner(System.in);

        readInput(aScanner, input1);

        readInput (aScanner, input2);

        readInput (aScanner, merge);

        for (int i = 0; i < input1.length; i++) {
            System.out.println(input1[i]);
        }

        for (int i = 0; i < input2.length; i++) {
            System.out.println(input2[i]);
        }

        for (int i = 0; i < merge.length; i++) {
            if(i % 2 == 0) {
                merge[i] = input1[i / 2];
                            System.out.println(store[i]);
            } else {
                merge[i] = input2[i / 2];
                            System.out.println(store[i]);
            }

        }

    }

}

我的输入:

1

2

3

4


5

6

7

8

所以输出应该是:

1

5

2

6

3

7

4

8

这是我的输出。谁能帮我解决这个问题吗?谢谢

1
2
3
4

5
6
7
8

1
2
3
4

null
null
null
null
null
5
6
7
8
null
null
null
null
null
null
1
6
3
8
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at Demo.main(Demo.java:47)

null
null
null
null
null

最佳答案

尝试使用以下内容:

  if(i % 2 == 0) {
                merge[i] = input1[i/2];
            } else {
                merge[i] = input2[i/2];
            }

对于更新后的代码,

readInput(aScanner, input1); 

应该变成

int index1 = readInput(aScanner, input1); 

对于所有readInputs然后输出循环

for (int i = 0; i < input1.length; i++) {
            System.out.println(input1[i]);
        }

应该变成

 for (int i = 0; i < index1; i++) {
            System.out.println(input1[i]);
        }

对于所有输出循环(请注意,您需要为所有 3 个输入和循环使用不同的索引变量,即索引 1、索引 2 和索引 3。

关于java - 合并2个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897599/

相关文章:

java - 图像管理,图像数组

java - LinkOption.NOFOLLOW_LINKS 的含义是什么以及何时使用它?

c - 对于我的 C 代码,我读取文件并对它进行排序会产生垃圾输出。为什么?

arrays - 在 2D MATLAB 数组中的两点之间获取 1D 切片

c - 数组中最小的两个整数和

javascript - 如何在 angularjs 中迭代 $scope 变量?

java - OSGi/BND : How to exclude classes from bundle generation?

java - 如何知道 Intellij 使用的是哪个构建工具?

java - 在 Frame 内的 Applet 顶部绘制

php 文件返回错误转换为 Android GET 请求的 JSON