在Java中使用分隔符连接字符串
我有一个名为MyDate的对象,它返回三个方法在Java中使用分隔符连接字符串,java,Java,我有一个名为MyDate的对象,它返回三个方法String getDay()、String getYear()、String getMonth() 例如,2013年9月24日将是2013年9月24日。。我想使用一个公共分隔符连接这三个字符串,该分隔符是破折号“-”如何在不使用StringBuilder或“+”运算符的情况下连接?最紧凑的代码形式是什么 例如,我知道我可以这样做,但有没有更紧凑的形式?因为我知道+操作符很贵 MyDate myDate = new MyDate(); myDate.
String getDay()、String getYear()、String getMonth()
例如,2013年9月24日将是2013年9月24日。。我想使用一个公共分隔符连接这三个字符串,该分隔符是破折号“-”
如何在不使用StringBuilder或“+”运算符的情况下连接?最紧凑的代码形式是什么
例如,我知道我可以这样做,但有没有更紧凑的形式?因为我知道+操作符很贵
MyDate myDate = new MyDate();
myDate.getYear()+"-"+myDate.getMonth()+"-"+myDate.getDay();
您可以使用
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(…)
方法或格式化程序对象的任何教程。您可以使用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(…)
方法或格式化程序对象的任何教程。您可以酷并使用番石榴
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);
}
你可以保持冷静,用番石榴
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);
}
如果您不反对使用Apache commons
如果您不反对使用Apache commons,请加入
StringUtils
StringUtils#join
如果您可以使用apachecommons,那么字符串连接(Object[]array)
将是完美的选择。
您可以一次性提供字符串:
StringUtils.concatenate([myDate.getYear(), myDate.getMonth(), myDate.gateDay()])
更多信息请点击此处:
如果您可以使用ApacheCommons,那么
字符串连接(Object[]数组)
将是完美的选择。
您可以一次性提供字符串:
StringUtils.concatenate([myDate.getYear(), myDate.getMonth(), myDate.gateDay()])
更多信息请点击此处:
您不想使用
+
或StringBuilder
?我想说使用StringBuilder,但您排除了这一点。为什么?你不想使用+
或StringBuilder
?我想说使用StringBuilder,但你排除了这一点。为什么?有人怀疑番石榴使用StringBuilder。@user949300是的,但它是隐藏的!我喜欢您的解决方案,或者Apache commons的建议,假设OP已经在他的代码库中使用了它们被命名为Joiner.join(objects)代码>有人怀疑番石榴使用StringBuilder。@user949300是的,但它是隐藏的!我喜欢您的解决方案,或者Apache commons的建议,假设OP已经在他的代码库中使用了它们
被命名为Joiner.join(objects)代码>你不需要一个分隔符吗?另外,该方法已被弃用。您不需要在其中的某个位置使用分隔符吗?此外,该方法已被弃用。