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