在Java中使用分隔符连接字符串

时间:2013-09-25 00:53:34

标签: java

我有一个名为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 个答案:

答案 0 :(得分: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对象的任何教程。

答案 1 :(得分:2)

您可以 并使用Guava

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);
}

答案 2 :(得分:2)

如果您不反对使用Apache commons。

StringUtils#join

答案 3 :(得分: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