如何修正toString方法中的员工列表空格格式问题?
解决方法
问题出在格式字符串的两处设置上:
firstName的宽度设为9,而目标格式中该列实际宽度为8(最长的Srilatha刚好8个字符,无多余空格);lastName格式说明符后多了一个空格,导致姓氏和薪资之间多出一个空格,同时薪资未设置固定宽度,短数值无法和长数值对齐。
调整后的toString方法如下:
public String toString() { String statement = String.format("%-8s %-10s%7.2f%n", this.firstName, this.lastName, this.monthlySalary); return statement; }
格式说明:
%-8s:将firstName左对齐,占满8个字符宽度,短姓名会自动补空格,和目标格式的姓名列完全匹配;%-10s:将lastName左对齐,占满10个字符宽度,不同长度的姓氏补空格后总长度一致,保证薪资起始位置统一;%7.2f:将薪资右对齐,占满7个字符宽度,长数值(如6345.00)刚好占满,短数值(如525.00)会自动在前面补一个空格,实现小数点对齐。
调整后输出就会完全匹配作业要求的格式。
内容的提问来源于stack exchange,提问作者Tiffani Singleton
相关产品推荐
相关产品推荐

