2013-09-25 28 views
0
加入分隔字符串

我呼籲指明MyDate對象並將其返回三種方法String getDay(), String getYear(), String getMonth()在Java中使用

例如2013年9月24日將2013,24,9 ..我想加入使用一個共同的分離這三個字符串,其DASH "-".如何在不使用StringBuilder或「+」運算符的情況下加入?什麼是最緊湊的代碼形式?

例如,我知道我可以做到這一點,但有沒有更緊湊的形式?因爲我知道+運營商很貴。

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

你不想使用'+'或'StringBuilder'? –

+0

我會說使用StringBuilder,但你排除了這一點。怎麼來的? – jedwards

回答

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對象上的任何教程噸。

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

有人懷疑Guava使用StringBuilder。 – user949300

+0

@ user949300是的,但它是隱藏的! –

+0

我喜歡你的解決方案,或Apache的commons建議,假設OP已經在他的代碼庫中使用它們。 – user949300

2

如果你不反對使用Apache公地。

StringUtils#join