String.replace()不像我期望的那样工作

时间:2015-06-04 21:20:31

标签: java string replace

我不了解如何使用String.replace()方法。这是代码:

    CharSequence oldNumber = "0";
    CharSequence newNumber = "1";
    String example = "folderName_0";
    System.out.println("example = " + example);
    example.replace(oldNumber, newNumber);
    System.out.println("example.replace(oldNumber, newNumber);");
    System.out.println("example = " + example);

它正在输出:

example = folderName_0
example.replace(oldNumber, newNumber);
example = folderName_0 // <=== How do I make this folderName_1???

3 个答案:

答案 0 :(得分:2)

replace方法不会更改字符串的内容; String是不可变的。它返回一个包含更改内容的新字符串,但您忽略了返回的值。变化

example.replace(oldNumber, newNumber);

example = example.replace(oldNumber, newNumber);

答案 1 :(得分:1)

字符串是不可变的。您需要将返回值replace重新分配给变量:

example = example.replace(oldNumber, newNumber);

答案 2 :(得分:0)

String是一个不可变对象,当您尝试在此代码的帮助下更改字符串时 - example.replace(oldNumber,newNumber);它更改了您的字符串,但它将是一个新字符串,并且您没有将新字符串保存到任何字符串中变量。您可以将此新字符串保存到新变量中,如果您希望稍后在代码中使用旧字符串值,例如 -

String changedValue = example.replace(oldNumber,newNumber);

如果您以后不打算使用旧的字符串值,则可以存储在现有字符串中,如< - p>

example = example.replace(oldNumber,newNumber);