對於我的一項任務,我需要以特定間隔方式格式化一行字符串和整數。所有的字符串和整數都是通過get方法訪問的對象的數據字段。格式化一行字符串和整數
getId
返回六位整數,getName
返回一個字符串的姓和名,getAge
返回一個整數,getGPA
返回翻倍到3位小數。
我的導師告訴我使用DecimalFormat類,我嘗試了幾次,但是我一直無法弄清楚如何因爲字符串,而且我一直得到一個錯誤,說Cannot format given Object as a Number
。
我不確定如何將字符串作爲DecimalFormat的一部分,因爲他給我們提供的所有示例都將0放在數字的前面或格式化貨幣格式的數字。我如何重寫我的DecimalFormat以匹配下面的示例輸出?
這是打印出行和錯誤的代碼。
System.out.println(format.format(temp.getID() + " " +temp.getName() + " " + temp.getAge() + " " + temp.getGPA()));
你可能想看看[格式化字符串](http://www.homeandlearn.co.uk/java/java_formatted_strings.html)的一些更多的想法。 getID'實際返回的是什麼?什麼是'格式'?考慮提供一個[可運行的示例](https://stackoverflow.com/help/mcve),它可以證明你的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這會減少混淆和更好的響應 – MadProgrammer
使用'printf'替代,這裏是一個整潔的方便的tuto:https://youtu.be/moQ3Kr8ouiU – Enissay