Java多行字符串形成

时间:2012-04-13 16:11:28

标签: java string-concatenation

我绝不是一个java程序员,所以这看起来很基本。

当您想要缩短代码行时,其中哪些更好。

String str = "First part of a string.";
str += " Second part of string.";

String str = "First part of string." +
" Second part of string."

我想我的问题是做+ =和+做一个新的String对象?如果他们这样做,那么两者都不会更好,这只是一个偏好问题。我给出的例子将是现实世界使用的一个很好的例子。我不希望用任何一种方法比较连续3次到1000次。

由于

5 个答案:

答案 0 :(得分:3)

我更喜欢第二种方法。原因是编译器可能会在编译时将串联的结果组合成单个字符串,而第一个方法可能在运行时完成(取决于实际的实现)。除非你做某事,否则它是一件小事然而,数百万次。

答案 1 :(得分:2)

实际上,Java编译器需要在编译时连接第二个示例。请参阅15.28. Constant Expressions3.10.5. String Literals

答案 2 :(得分:0)

这是我编译时得到的反编译:

public static void main(String[] args) {
    String str = "First";
    str += " Second";
    System.out.println(str);

    String str2 = "First" + " Second";
    System.out.println(str2);
}

变为:

public static void main(String args[]) {
    String s = "First";
    s = (new StringBuilder()).append(s).append(" Second").toString();
    System.out.println(s);
    String s1 = "First Second";
    System.out.println(s1);
}

所以第二种方法更好。

答案 3 :(得分:0)

StringBuilder sb = new StringBuilder();
sb.append("First part");
sb.append("Second part");
System.out.print(sb.toString());

答案 4 :(得分:0)

遵循Java的编码约定:

String str = "First part of string. "
             + "Second part of string.";

确保'+'运算符从下一行开始,以提高可读性。 使用这种样式可以实现可读且高效的代码。 https://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#248

希望这会有所帮助!

快乐的编码,

Brady