算法输出到长度开始新行



我正在尝试格式化我所写内容的输出,以显示素数列表(埃拉托色尼)为每行一定数量的结果。他们是否需要放入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 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++;
    }
}

每次写入时,每增加 10 个增量(idx 模数 10 == 0),您将打印一个新行字符,否则,将打印一个","字符。

相关内容

  • 没有找到相关文章

最新更新