我使用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();
答案 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);