0

我有一个名为 MyDate 的对象,它返回三个方法String getDay(), String getYear(), String getMonth()

例如 2013 年 9 月 24 日将 2013、24、9 .. 我想使用通用分隔符 DASH 加入这三个字符串"-".如何在不使用 StringBuilder 或“+”运算符的情况下加入?什么是最紧凑的代码形式?

例如,我知道我可以做到这一点,但有更紧凑的形式吗?因为我知道 + 运算符很昂贵。

MyDate myDate = new MyDate();
myDate.getYear()+"-"+myDate.getMonth()+"-"+myDate.getDay();
4

4 回答 4

2

你可以使用String.format(...)

例如,如果您的 getXXX() 方法返回一个字符串:

String dateStr = String.format("%s-%s-%s", 
      myDate.getYear(), myDate.getMonth(), myDate.gateDay());

否则,如果他们返回一个 int:

String dateStr = String.format("%4d-%02d-%02d", 
      myDate.getYear(), myDate.getMonth(), myDate.gateDay());

有关这方面的更多信息,请查看有关printf(...)方法或 Formatter 对象的任何教程。

于 2013-09-25T00:55:07.383 回答
2

你可以很酷并使用番石榴

public static void main(String[] args) {
    Date myDate = new Date();
    Object[] objects = new Object[] {
            myDate.getYear(), myDate.getMonth(), myDate.getDay()
    };
    String message = Joiner.on("-").join(objects);
    System.out.println(message);
}
于 2013-09-25T00:59:15.127 回答
2

如果您不反对使用 Apache commons。

StringUtils#join

于 2013-09-25T01:04:06.323 回答
0

如果你可以使用 apache commons 那就String concatenate(Object[] array)完美了。你可以一次性给你的字符串:

StringUtils.concatenate([myDate.getYear(), myDate.getMonth(), myDate.gateDay()])

更多信息在这里: http ://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html

于 2013-09-25T01:07:12.820 回答