繁体   English   中英

String.replace()无法正常工作

[英]String.replace() isn't working like I expect

我不明白如何使用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???

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

example.replace(oldNumber, newNumber);

example = example.replace(oldNumber, newNumber);

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

example = example.replace(oldNumber, newNumber);

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

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

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

example = example.replace(oldNumber,newNumber);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM