在某一行上打印数组

时间:2014-11-02 22:19:20

标签: java arrays

我需要帮助打印阵列,我需要每行打印6个项目并切换到第七行和后续数字的下一行。另外,我在一个数组中输入数字而不定义将输入多少个数字?

import java.util.Scanner;

public class NumberArray
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        System.out.println("How many grades do you want to enter?");
        int num = input.nextInt();
        int array[] = new int[num];
        System.out.println("Enter the " + num + " grades now.");
        for (int grades = 0 ; grades < array.length; grades++ ) 
        {
            array[grades] = input.nextInt();
        }
        System.out.println("These are the grades you have entered.");
        printArray(array);
    }

    public static void printArray(int arr[])
    {
        int n = arr.length;
        for (int i = 0; i < n; i++) {
            System.out.print(arr[i] + " \t");
        }
    }
}

2 个答案:

答案 0 :(得分:1)

  

我需要帮助打印阵列,我需要每行打印6个项目并切换到下一行以获取第七个和后面的数字。

从这个问题来看,它似乎表明您希望输出看起来像这样:

1 2 3 4 5 6
7 8 9 ... n

这可以非常简单地实现。

选项1 - 经典的If语句

for(int x = 0; x < array.length; x++) {
    System.out.print(array[x]);

    if(x == 5) {
        // 5 because we're counting from 0!
        System.out.println();
    }
}

选项2 - 使用Ternary运算符将其保持在一行

注意:这或多或少相同。很高兴能够完成这些答案。

for(int x = 0; x < array.length; x++) {
    System.out.print(array[x] + x == 5? "\n":"");
}

修改

如果您的意思是每行需要6个项目,请执行以下操作:

1 2 3 4 5 6
7 8 9 10 11 12
...

然后您可以使用%(模数运算符)在每个输出上打印一个新行。这实际上很容易更改,但您需要确保在输出内容之前检查值。这可以在this IDEOne中显示。

答案 1 :(得分:0)

使用模数运算符(%)打破新的换行符:

public static void printArray(int arr[])
{
    int n = arr.length;
    for (int i = 0; i < n; i++) {
        if(i % 6 == 0)  // if you don't want the initial newline, check for i > 0
            System.out.println()
        System.out.print(arr[i] + " \t");
    }
}

您还可以使用printf()方法格式化线条;这可能更好:

System.out.printf("%5d", arr[i]);

之所以更好,是因为您可以轻松地将输出格式化为特定的对齐方式,列宽等,这将使您的输出看起来更好。