我有一个类,其中包含3个int
个变量:日,月和年。
我还有一个名为toString()
的方法,它将采用三个字段并以#34; dd / mm / yyyy"格式返回。 (如果日期或月份中只有1个数字,则无需输入0。)
这样做的最佳方式是什么?
public String toString(){
String dateString = this.day + "/" + this.month + "/" + this.year;
return dateString;
}
OR
public String toString(){
String dateString = Integer.toString(this.day) + "/" + Integer.toString(this.month) + "/" + Integer.toString(this.year);
return dateString;
}
答案 0 :(得分:6)
作为替代方案,我会使用String.format
来创建String
return String.format("%d/%d/%d", day, month, year)
您想要使用前导零格式化日期吗?格式化程序很容易:
return String.format("%02d/%02d/%02d", day, month, year)
- 0 - use leading zero instead of spaces.
- 2d - Minimum two character to print (so "2" will use " 2")
您可以在Formatter
中找到有关允许的标记的完整文档一个简单的例子:
String.format("%002d", 5);
005
以日期为例,
String.format("%02d/%02d/%02d", 9, 5, 18);
18年9月5日
答案 1 :(得分:3)
您也可以在一个声明中写出来。除非您不确定日期,月份和年份是整数,即Integer
,或者您想要进行明确的异常处理,否则无需明确地String
到int
。
@Override
public String toString() {
return (this.day + "/" + this.month + "/" + this.year);
}
答案 2 :(得分:2)
第一个没有任何疑问,在第二个中你明确地将Integer转换为String,然后在返回时再次连接String,这没有多大意义。