如何在一行中打印一个数组的所有内容?

时间:2017-01-22 13:46:21

标签: java arrays java.util.scanner

我是JAVA的新手和初学者。 我刚刚开始学习扫描仪和数组!

我想从Scanner获得一些输入。并将其保存到Array中。 数组大小为5,我成功保存 但是我可以打印的只是数组中的一个值。 我想打印数组中的所有值 我不知道我应该做什么或者我应该在哪里修理! 希望你们能告诉我这件事。

我的代码在下方。

import java.util.Scanner;

import jdk.internal.util.xml.impl.Input;

public class Test2 {

    public static void main(String[] args) {
        int[] array = new int[5];

        Scanner scanner = new Scanner(System.in);
        System.out.print("five numbers");

        for (int i = 0; i <= array.length; i++) {
            array[i] = scanner.nextInt();
        }
        for (int nums : array) {
            System.out.print(nums);
        }

    }
}

这是结果:

五个数字1 2 3 5 5

5 个答案:

答案 0 :(得分:0)

问题在于以下迭代,期望6个数字(因为i从0开始,到5结束)。

这不起作用:

for (int i = 0; i <= array.length; i++)

这将有效

您应该输入6个数字并将数组大小更改为6个元素。无论哪种方式,您都需要将for循环更改为:

for (int i = 0; i < array.length; i++)

答案 1 :(得分:0)

变化

for (int i = 0; i <= array.length; i++)'$' 

for (int i = 0; i < array.length; i++)'$'

你希望它循环5次。

答案 2 :(得分:0)

您的问题是您定义了一个大小为5的数组:

int[] array = new int[5];

您希望获得6个输入数字,因为for-loop<=而设置为循环6次:

for (int i = 0; i <= array.length; i++) {
    array[i] = scanner.nextInt();
}

此解决方案是将条件更改为i < array.length

说明:

  1. 根据定义:

    数组大小为5

    array.length = 5

  2. 在for循环中{li>

    array[i] = scanner.nextInt(),当i = array.lengthi=5时,array[i]超出范围。

答案 3 :(得分:-1)

你可以使用

System.out.print(Arrays.toString(array));

答案 4 :(得分:-1)

我觉得你不需要使用

import jdk.internal.util.xml.impl.Input;

包文件。 并更改循环语句

for (int i = 0; i <= array.length; i++)

for (int i = 0; i < array.length; i++)

否则当您输入第6个输入时会出现错误:

java.lang.ArrayIndexOutOfBoundsException