String toString()方法

时间:2013-12-27 17:51:40

标签: java string reference tostring

我想创建一个字符串的副本,而没有字符串变量引用前一个字符串。 toString()方法会成为解决方案吗?

换句话说,String.toString()是否返回其字符的副本而不是对其自身的引用?

4 个答案:

答案 0 :(得分:7)

不,它返回String对象本身。你可以做到

String copy = new String(myString.toCharArray());

String copy = new String(myString); // may use same char[] instance

请注意String是不可变的,因此通常您无需复制它。

答案 1 :(得分:3)

不,toString将返回String本身。如果你想要一份副本,你应该使用

String newString = new String(oldString);

但JDK中字符串的内部实现使用字符串池,因此它们可以引用相同的内部字符串。

在任何情况下,要求复制都没有意义,因为它们是不可变的:除非您在创建副本时修改副本,否则完全没有意义。

答案 2 :(得分:0)

 String s1 = "123";
 String s2 = "123";

这两个是相同的字符串。

答案 3 :(得分:0)

类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称组成。

toString():这将返回一个String对象,表示此Integer的值。

toString(int i):返回表示指定整数的String对象。

System.out.println("str.toString: " + str.toString());