在Java中,为什么String.Replace之后的String值没有更改? [重复] - java

This question already has answers here:

String replace method is not replacing characters

(5个答案)

4年前关闭。

我对此下面的程序有疑问

请看下面的程序

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);
    }

}

我期望的是,一旦运行此程序,我应该将putput视为Best,但是令我惊讶的是输出是Test。

谁能告诉我,为什么这样呢?

提前致谢 。

java参考方案

字符串在Java中是不可变的,这意味着您无法更改它们。当您调用replace方法时,实际上是在创建一个新的String。

您可以执行以下操作:

String str = "Test";
str = str.replace('T', 'B');

这是重新分配。

在Java中将华氏度转换为摄氏温度[重复] - java

This question already has answers here: Double value returns 0 [duplicate] (3个答案) 6年前关闭。 我正在尝试将华氏度转换为摄氏温度。现在当我使用此错误时:double fahrenheit=input.nextDouble(); double celsius= ( **5** /…

从long到int,如果long值足够小以适合int [重复] - java

This question already has answers here: Safely casting long to int in Java (10个回答) 7年前关闭。 如果long值足够小以适合int,可以自动将long转换为int吗?long i=1; int j=i; //Error Type mismatch: cannot convert…

除了在类上访问属性时,为什么类在Java中没有定义符号? [重复] - java

This question already has answers here: Are Java classes objects? (4个答案) 在8个月前关闭。 考虑最简单的示例。我们有public class Foo {} 因此我们可以说Foo.class // ==> class Foo 因此,有理由认为Foo应该是java.lang.Class…

使用-source 8或更高版本来启用lambda表达式[重复] - java

This question already has answers here: Specifying java version in maven - differences between properties and compiler plugin (3个答案) 去年关闭。 当我尝试运行Maven构建时遇到构建错误。我创建了一个包含lambda函数的简单J…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…