1

我有

String newStr = "previous"

一段时间后,我想将我的字符串更改为next. 现在我可以做

newStr=getNewString(); // Say getNewString return `next`

Arent 字符串应该是不可变的。

我还有其他方法可以实现吗?谢谢。

编辑neww取而代之new

4

3 回答 3

12

Arent 字符串应该是不可变的。

字符串是不可变的。

对 String 的引用不必是不可变的。

String s = "hello";
s = "World"; // the reference s changes, not the String.

final String t = "Hi"; // immutable reference
t = "there"; // won't compile.

// immutable reference to a mutable object.
final StringBuilder sb = new StringBuilder();
sb.append("Hi"); // changes the StringBuilder but not the reference to it.
sb = null; // won't compile.
于 2012-08-10T10:22:25.927 回答
3

字符串是不可变的。您只更改字符串引用。

于 2012-08-10T10:24:26.857 回答
2

Java 中的字符串是不可变的。您要更改的是对字符串的引用,而不是字符串本身。

于 2012-08-10T10:22:17.787 回答