如何使用java中的数字为每15个空格创建一个换行符

时间:2015-04-03 17:23:07

标签: java arraylist output bluej

我有以下代码,用于查找从1到用户输入的素数因子。问题是输出是一个非常长的行,我希望每15个数字输出然后转到下一行。我该怎么做?

这是我的代码:

public static void main (String args[])
{
    System.out.println("\nLab1la\n");
    Scanner input = new Scanner(System.in);
    System.out.println("Enter the primes upperbond ==>> ");
    final int MAX = input.nextInt();
    input.nextLine();
    boolean primes[];
    primes = new boolean[MAX];

    ArrayList<Integer>PrimeFactor = new ArrayList<Integer>();
    for (int i = 2; i < MAX + 1 ; i++)
    {
        PrimeFactor.add(i); 
    }

    System.out.println("COMPUTING RIME NUMBERS");
    System.out.println();
    System.out.println("PRIMES BETWEEN 1 AND " + MAX);

    CompositeNumbers(PrimeFactor);

    for (int value : PrimeFactor)
    {
        System.out.print(value);
        System.out.print(" ");
    }

}

public static void CompositeNumbers(ArrayList<Integer> PrimeFactor)
{
    for (int i = 0; i < PrimeFactor.size(); i++)
    {
        if (!isPrime(PrimeFactor.get(i)))
        { 
            PrimeFactor.remove(i);
            i--;

        }
    }
}

public static boolean isPrime(int n)
{
    if(n==1)
    {
        return true;
    }
    for (int i = 2; i < n +1/2; i++)
    {
        if (n%i == 0)
        {
            return false;

        }
    }
    return true;

}
}

2 个答案:

答案 0 :(得分:0)

你可以这样做:

for (int i = 0; i < PrimeFactor.size(); i++)
{
    if (i > 0 && i % 15 == 0) System.out.println();
    System.out.print(PrimeFactor.get(i));
    System.out.print(" ");
}

答案 1 :(得分:0)

你可以只有一个计数器并取这个15的计数器值并在下一行打印,如下所示。像@soong描述的那样

int counter = 0;
    for (int value : PrimeFactor)
    {
         if(counter % 15 == 0){
             System.out.println();
         }

        System.out.print(value);
        System.out.print(" ");
        counter++;
    }