我对下面的程序有疑问
请参阅下面的程序
public class Kiran {
public static void main(String args[]) {
String str = "Test";
str.replace('T', 'B');
System.out.println("The modified string is now " + str);
}
}
我所期望的是,一旦我运行这个程序,我应该看到输入为 Best ,但令我惊讶的是输出是 Test 。
谁能告诉我,为什么会这样?
提前致谢。
最佳答案
字符串在 Java 中是不可变的,这意味着您无法更改它们。当您调用replace方法时,您实际上是在创建一个新的字符串。
您可以执行以下操作:
String str = "Test";
str = str.replace('T', 'B');
这是一次重新分配。
关于java - 为什么Java中String.Replace后String值没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951333/