Java 1.6 中使用多个整数进行字符串连接的技巧

Tips in String concatenation in Java 1.6 with multiple integers

我有一个 class,其中有 3 个 int 变量,分别命名为:日、月和年。 我还有一个名为 toString() 的方法,它将采用 "dd/mm/yyyy" 格式的三个字段和 return (如果日期或月份只有 1 个数字,则无需输入 0 ).

最好的方法是什么?

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

public String toString(){
        String dateString = Integer.toString(this.day) + "/" + Integer.toString(this.month) + "/" + Integer.toString(this.year);
        return dateString;
    }

毫无疑问,第一个,在第二个中,您将 Integer 显式转换为 String,然后在返回时再次连接到 String 中,这没有多大意义。

您也可以将其写在一条语句中。没有必要明确地将 Integer 类型转换为 String 除非您不确定日、月和年是否为整数,即 int,或者您想要进行显式异常处理。

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

作为替代方案,我会使用 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);

09/05/18