在Java中更改字符串值

时间:2012-08-10 10:20:19

标签: java string immutability

我有

String newStr = "previous"

有段时间后我想将我的字符串更改为next。我现在可以吗

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

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

我可以通过其他任何方式实现这一目标吗?感谢。

修改:取neww代替new

3 个答案:

答案 0 :(得分: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.

答案 1 :(得分:3)

String是不可变的。您只更改String引用。

答案 2 :(得分:2)

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