我可以在java中使用printf而无需移动到新行

时间:2011-12-11 11:09:32

标签: java printing printf

我使用System.out.printf方法格式化字符串并打印一行但是 之后,我需要使用print方法通过for循环打印另一行而不移动新行。

现在使用printf方法后,它将移动到新行。但是我不需要移动新的行直到打印我的for循环。

有可能吗? 或者你能说出任何其他方式

这是我的示例代码

  System.out.printf("%7s  %s%n",names[i], " ");
        for(int j=0; j<5;j++){
        System.out.print( grades[i][j]+ " " );
        }
   System.out.println();

6 个答案:

答案 0 :(得分:10)

默认情况下,

printf不会打印新行。你真的应该阅读文档。当您明确使用%n换行占位符打印新行时,您不应该对获得换行符感到惊讶......

如果您不想要它,请删除%n

答案 1 :(得分:2)

printf不会自己打印换行符,格式末尾的%n会导致换行。用"%7s %s%n"替换"%7s %s"应该有效。

答案 2 :(得分:2)

我想这就是你需要的,

  

打印学生姓名及每行的成绩。

要完成此任务,您需要

for(int i=0;i<number_of_students;i++)
{
 System.out.printf("%7s  %s ",names[i], " ");
                           ^                                 //note the ^
            for(int j=0; j<5;j++){
            System.out.print( grades[i][j]+ " " );
            }

System.out.println();
}

这会给你这样的东西:

  

名称 成绩 成绩 成绩 成绩 成绩

     

名称 成绩 成绩 成绩 成绩 成绩

     

...

答案 3 :(得分:1)

你的意思是这样吗?

System.out.printf("%7s  %s%n",names[i], " ");
        for(int j=0; j<5;j++){
        System.out.print( grades[i][j]+ " " );
        }
System.out.println();

答案 4 :(得分:0)

使用System.out.format(String, Object...),它不提供一行

答案 5 :(得分:0)

您可以在循环外打印。

String gradesString;
System.out.printf("%7s  %s%n",names[i], " ");
    for(int j=0; j<5;j++){
        gradesString += grades[i][j]+ " ";
    }
System.out.println(gradesString);