Java 1.6中字符串连接的提示,包含多个整数

时间:2018-05-09 06:00:24

标签: java integer concatenation tostring java-6

我有一个类,其中包含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;
    }

3 个答案:

答案 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,或者您想要进行明确的异常处理,否则无需明确地Stringint

@Override
public String toString() {
    return (this.day + "/" + this.month + "/" + this.year);
}

答案 2 :(得分:2)

第一个没有任何疑问,在第二个中你明确地将Integer转换为String,然后在返回时再次连接String,这没有多大意义。