2012-01-29 41 views
0

如何替換字符串的目錄路徑? 原始字符串:通過操縱字符串替換目錄路徑 - Java

String fn = "/foo/bar/ness/foo-bar/nessbar.txt"; 

我需要的輸出看起來像:

/media/Transcend/foo-bar/nessbar.txt 

我已經試過線之下,但它不工作

fn.replaceAll("/foo/bar/ness", "/media/Transcend"); 
+0

如果你不打算使用正則表達式,不要使用'replaceAll',使用'replace'來完成同樣的工作。但是,對於這個問題,你最終可能會做'File'對象而不是字符串操作。 – dacwe 2012-01-29 17:44:21

+0

@Tom,你確實知道這個問題比你鏈接爲重複的問題要舊得多,對嗎? – alvas 2016-12-29 14:51:26

+0

@alvas你知道這不重要嗎? – Tom 2016-12-29 15:56:26

回答

3

你忘了重寫變量:

String fn = "/foo/bar/ness/foo-bar/nessbar.txt"; 
fn = fn.replaceAll("/foo/bar/ness", "/media/Transcend"); 
1

試試這個:

fn = fn.replaceAll("/foo/bar/ness", "/media/Transcend"); 

replaceAll方法返回一個新的String對象,使原始對象保持不變。這就是爲什麼你需要在某個地方分配結果的原因,例如,在同一個變量中。

0

的replaceAll有點不爲我工作,無法弄清楚,爲什麼,我結束了這樣的事情,雖然只替換路徑的第一部分。

String fn = "C:/foo/bar/ness/foo-bar/nessbar.txt"; 
Strign r = "C:/foo/bar/ness"; 
fn = "C:/media/Transcend" + fn.substring(r.length());