2015-09-16 92 views
2

我從我的類中獲取了一個toString()方法,該方法從對象中獲取信息並將其放入要打印的字符串中。格式化toString方法

這是它應該是什麼樣子:

Susan   70  <Average C 
Alexander  80  >Average B 

,但我無法格式化我toString()方法。這就是現在看起來非常無組織的情況。

public String toString() { 

    return ("\n" + fullName + 
      "   " + relativeScore + 
      "   " + testScore); 

} 

我通常會使用printf,但由於它是一個return語句,我不能使用它。任何幫助將非常感激。

+0

你得到的輸出是什麼? –

回答

1

String.format方法做返回一個新的String對象,所以你可以使用它,而不是printf,例如:

public String toString() { 
    return String.format("%s\t%3d\t%s", fullName, relativeScore, testScore); 
} 
0

你可以使用String.format()並做到這一點,就像你與printf()

return String.format("whatever comes here"); 
3

取決於你想達到什麼,你可以簡單地使用String#format,例如:

System.out.println(String.format("%-10s %d %10s %5s", "Susan", 70, "<Average", "C")); 

,輸出

Susan  70 <Average  C 

有關詳細信息看看this exampleFormatter

0

你這樣做是錯誤的方式。蘇珊是5個字母的單詞,亞歷山大是9個字母的單詞。所以如果蘇珊後面跟着10個空格,那麼亞歷山大應該跟着10-9 + 5 = 6個空格。你應該考慮代碼中全名的長度。

+0

如果這些值來自同一類的兩個不同實例,那麼OP將如何執行該操作? – MadProgrammer