算法输出长度开始新行

Algorithm output to length starts new line

我正在尝试将我编写的输出格式化为显示素数列表 (Eratosthenes) 到每行一定数量的结果。他们是否需要放入 Array 才能完成此操作?除了 .split(""); 之外,我还没有找到实现它们除法的方法,它会为每个和 Oracle 站点的 System.out.format(); 参数索引呈现一行以指定长度。然而,这些要求角色是众所周知的。我用以下内容打印它,这当然会创建一条无限线。

  for (int count = 2; count <= limit; count++) { 
        if (!match[count]) { 
            System.out.print(count + ", ");
        } 
   }

System.out.print() 有 运行 例如 10 次时,有没有一种方法可以简单地用 if(...>[10] 条件调用 System.out.print("\n");?也许我忽略了一些对 Java 来说相对较新的东西。在此先感谢您的任何建议或意见。

通过使用跟踪器变量,您可以跟踪已经显示了多少项,以便知道何时插入新行。在本例中,我选择了 10 个项目。确切的限制可根据您的需要灵活调整。

...
int num = 0;
//loop
for(int count = 2; count <= limit; count++)
{
    if(!match[count])
    {
        if (num == 10) { System.out.print("\n"); num = 0; }//alternatively, System.out.println();
        System.out.print(count + ",");
        num++;
    }
}
...

您可以简单地创建一些 int 值,例如

int i = 1;

...并在每次 Sysout 为 运行.

时增加它的值

像这样:

 int i = 1;
 for (int count = 2; count <= limit; count++) { 
    if (!match[count]) {
        if (i%10 == 0) 
            System.out.print(count+ "\n");
        else 
            System.out.print(count + ", ");
        i++;
    } 
}

试试这个:

int idx=1;
int itemsOnEachLine=10;
for(int count = 2; count <= limit; count++)
{
    if(!match[count])
    {
        System.out.print(count+(idx%itemsOnEachLine==0?"\n":","));
        idx++;
    }
}

你在每次写入时增加一个计数器 (idx),每 10 个增量(idx 模数 10 == 0),你将打印一个换行符,否则,一个“,”字符。