2015-06-04 59 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); 
相關問題