2015-06-04 129 views
0

我不理解如何使用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??? 

回答

2

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

example.replace(oldNumber, newNumber); 

example = example.replace(oldNumber, newNumber); 
1

字符串是不可改变的。你需要的replace返回值重新赋予变量:

example = example.replace(oldNumber, newNumber); 
0

String是一个不可变对象,当你想与此代码的帮助来改变你的字符串 - example.replace(oldNumber,newNumber);它改变了你的字符串,但它将会是一个新的字符串,并且您不会将该新字符串保存到任何变量中。要么你可以拿着这个新的字符串转换成一个新的变量,如果你想在你的代码像后来使用旧的字符串值 -

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

,或者你可以将现有的字符串中存储,如果你不打算使用之后的旧字符串值 -

example = example.replace(oldNumber,newNumber); 
相关问题