java - 为什么Java中String.Replace后String值没有改变?

标签 java string

我对下面的程序有疑问

请参阅下面的程序

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/

相关文章:

java - 什么是 alertcontroller.recyclelistview

java - 在 PLSQL Oracle 中抛出特定的错误消息...进入 hibernate 状态?

java - 从多个命令行参数打印较小的字符串

c++ - 将文件读入数组

java - 通过oAuth2 Spring Security获取身份验证(主体)对象?

java - Tensorflow Java API 设置分类列的占位符

java - 超时后调用方法

android - 如何将 Speech To Text API 中的文本与 ArrayList/String 数组中的文本进行比较?

c# - Dllimport 将字符串从 C# 传递到 C++

c++ - 如何在C++中比较两个文本文件