代码之家  ›  专栏  ›  技术社区  ›  Arun Sudhakaran Nagma Firdose

一串(someVar)vs(“+someVar)[重复]

  •  2
  • Arun Sudhakaran Nagma Firdose  · 技术社区  · 9 年前

    我想知道两种方法的区别。我现在正在研究一些旧代码,它们是在哪里设置的 primitive a的值 String "" .

    obj.setSomeString("" + primitiveVariable);
    

    Size of empty Java String 上面说

    所以我想用 valueOf 中的方法 班我检查了文件 String.valueOf() 上面写着 如果参数为null,则为等于“null”的字符串;否则,将返回obj.toString()的值。

    那么哪种方法更好呢

    1. obj.setSomeString("" + primitiveVariable);
    2. obj.setSomeString(String.valueOf(primitiveVariable));

    上述过程在 List 迭代的大小超过600,并且预计在未来会增加。

    2 回复  |  直到 9 年前
        1
  •  2
  •   Suresh Atta    9 年前

    当你这么做的时候 "" 这不会创建对象。它将创建一个字符串文字。 There is a differenc ( How can a string be initialized using " "? )实际上。

    String concatenation docs

    Java语言为字符串连接运算符(+)和其他对象到字符串的转换提供了特殊支持。字符串连接是通过StringBuilder(或StringBuffer)类及其append方法实现的。

    所以,创建StringBuilder对象并给出另一个String对象是不必要的。

    除了表现之外,只要想一想。为什么用空字符串连接,而实际上要将int转换为字符串:)

        2
  •  2
  •   user7627726 user7627726    9 年前

    Q、 那么哪种方法更好呢

    A. obj.setSomeString(String.valueOf(primitiveVariable)) 通常是更好的方法。它更整洁,更家庭式。这将打印 primitiveVariable String ,而另一个将其打印为 int 价值第二种方式更像是“黑客”,组织性较差。 另一种方法是使用 Integer.toString(primitiveVariable) ,基本上与 String.valueOf .

    this post 和 this one too

    推荐文章