我有
String newStr = "previous"
有段时间后我想将我的字符串更改为next
。我现在可以吗
newStr=getNewString(); // Say getNewString return `next`
Arent字符串应该是不可变的。
我可以通过其他任何方式实现这一目标吗?感谢。
修改:取neww
代替new
答案 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中的字符串是不可变的。 你要改变的是对字符串的引用,而不是字符串本身。