算法输出到长度开始新行

时间:2015-06-12 21:54:09

标签: java arrays integer string-formatting system.out

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

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

System.out.print("\n");运行10次时,是否可以简单地使用if(...>[10]条件调用System.out.print()?也许我忽略了一些对Java来说相对较新的东西。提前感谢任何建议或意见。

3 个答案:

答案 0 :(得分:2)

通过使用跟踪器变量,您可以跟踪已经显示的项目数,以便您知道何时插入新行。在这种情况下,我选择了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++;
    }
}
...

答案 1 :(得分:1)

你可以简单地创建一些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++;
    } 
}

答案 2 :(得分:1)

试试这个:

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),你将打印一个新的行字符,否则,一个“,”字符。