Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用分隔符连接字符串_Java - Fatal编程技术网

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

在Java中使用分隔符连接字符串,java,Java,我有一个名为MyDate的对象,它返回三个方法String getDay()、String getYear()、String getMonth() 例如,2013年9月24日将是2013年9月24日。。我想使用一个公共分隔符连接这三个字符串,该分隔符是破折号“-”如何在不使用StringBuilder或“+”运算符的情况下连接?最紧凑的代码形式是什么 例如,我知道我可以这样做,但有没有更紧凑的形式?因为我知道+操作符很贵 MyDate myDate = new MyDate(); 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)你不需要一个分隔符吗?另外,该方法已被弃用。您不需要在其中的某个位置使用分隔符吗?此外,该方法已被弃用。