我有一个名为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();
答案 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()])