2011-12-11 50 views
0

我使用System.out.printf方法來格式化字符串並打印一行,但在此之後我需要通過for循環打印另一行而不移動新行。我可以在java中使用printf而不移動到新行

現在使用printf方法後,它將移動到新行。但我不需要移動新行直到打印我的for循環。

是否有可能? 或U可以告訴其他任何方式

這裏是我的示例代碼

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

使用System.out.println代替System.out。print –

+0

「不移動新行」是什麼意思?這是否意味着,你不想打印新的行?你還應該檢查你的問題的標點符號。 – MockerTim

+1

轉載問題:如何從'printf'中刪除'%n'?對不起,我給這個問題a * downvote *沒有做足夠的研究什麼printf格式字符串是... –

回答

7

printf默認情況下不打印新行。你真的應該閱讀文檔。當你明確打印使用%n換行佔位符一個新行,你不應該感到驚訝,你拿到一個換行符...

所以只是刪除%n,如果你不想要它。

+0

感謝您的回覆......是的,它是在那裏的新行字符。對不起,我從來沒有使用printf方法,所以我很困惑 – agiles

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(); 
1

的printf不會打印換行符本身的%n在您的格式字符串的結束將導致新的生產線。替換"%7s %s%n""%7s %s"應該工作。

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(); 
} 

這會給你這樣的事情:

名稱G RADE

名稱

...

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); 
相關問題