【问题标题】:Calling a method to print an array in single line调用方法以单行打印数组
【发布时间】:2016-06-30 18:28:02
【问题描述】:

我一直在尝试找出问题所在,但我似乎无法弄清楚。本质上,我的代码将让用户输入 N 大小的数组。然后数组将填充从 1-100 生成的随机数。我有一个 printArray 方法,它在一行中打印数组的元素,我已经在固定数组上测试过它并且它可以工作,但是当我从生成的数组中调用它时,它给了我很多额外的 0。 代码如下:

Scanner scan = new Scanner(System.in);
        System.out.println("Size of array:"); //prompts the user enter size of array
        int size = scan.nextInt();
        int array[] = new int[size];

for (int i = 0; i < array.length; i++) {
            array[i] = random.nextInt(100) + 1;
            printArray(array);

这里是显示方法:

public static void printArray(int[] array) {
    for (int i = 0; i < array.length; i++) {

        if (i == 0) {
            System.out.print(array[i]);
        }

        else if (i == array.length) {
            System.out.print(array[i]);
        }

        else
            System.out.print("," + array[i]);

    }
}

当我运行代码时,它会生成如下输出:(以 3 为例)

要排序的数组的大小? 3 36,0,036,68,036,68,75,应该是 36,68,75。

【问题讨论】:

    标签: java arrays methods printing output


    【解决方案1】:

    您在一行中多次打印该数组。

    在第一次迭代中打印36,0,0,在第二次迭代中打印36,68,0,并且仅在最后一次迭代中打印完全初始化的数组 - 36,68,75

    printArray(array); 移动到循环的末尾。您可能想在printArray 的末尾添加一个println

    for (int i = 0; i < array.length; i++) {
        array[i] = random.nextInt(100) + 1;
    }
    printArray(array);
    

    【讨论】:

    • 哦,天哪..我是如此专注于其他事情,我什至没有意识到这一点。太感谢了! 菜鸟失误
    • @Anon54 顺便说一句,我不知道自己编写一个打印数组的方法是否是一些练习/作业的一部分。如果不是,您可以简单地使用System.out.println(Arrays.toString(array)));
    • 我们被要求为未排序和排序列表调用 printArray 方法,并且不允许使用 Arrays 类。我会记住这一点的!
    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2012-06-26
    相关资源
    最近更新 更多