2012-10-09 81 views

回答

4

由於java.lang.String實例是不可變的*replaceAll返回正確的字符串,但您的程序將其扔掉。改變你的程序如下,以解決此問題:

file = file.replaceAll("/", "_"); 


*這是說:「不可更改」的一個奇特的方式:一旦創建一個字符串實例 "A/B",沒有方法,您可以調用就可以改變這個價值。

3

你需要存儲file.replaceAll()調用的結果爲String實例是不可變:

file = file.replaceAll("/", "_"); 
1

你必須指定的replaceAll的結果:

public static void main(String[] args) throws IOException { 
    String file = "A/B"; 
    String newFile = file.replaceAll("/", "_"); 
    System.out.println(newFile); 
} 
1
file.replaceAll("/", "_"); 

,因爲字符串在Java是不變,所以String類的任何方法,不僅僅是replaceAll,不修改現有的字符串..而是他們創建一個新的字符串並返回..所以你應該重新分配返回的字符串到file ..

file = file.replaceAll("/", "_"); 
0

仔細看看String.replaceAll javadoc:它返回一個字符串。

這樣的方法不會修改它們的參數。 所以,你需要寫:

String file = "A/B"; 
file = file.replaceAll("/", "_");