2015-06-04 146 views
2

我想更換內容(雙下劃線左右,見代碼)給定的字符串中,但不能讓它開始工作。因此,像這樣:Java的正則表達式下劃線

String test = "Hello! This is the content: __content__"; 
test.replaceAll("__content__", "Yeah!"); 
System.out.println("Output: " + test); 

所以輸出應該是:"Output: Hello! This is the content: Yeah!" 正則表達式中的replaceAll的第一個參數簡單是錯誤的,但我不知道正確的一個。任何人都知道?

回答

2

你忘了的replaceAll返回值分配回原始的字符串。 replaceAll(或任何其他字符串的方法)不會改變原始字符串:

String test = "Hello! This is the content: __content__"; 
test = test.replaceAll("__content__", "Yeah!"); 
System.out.println("Output: " + test); 

順便說一句,你甚至都不需要在這裏正則表達式,只需使用replace

test = test.replace("__content__", "Yeah!"); 
2

在Java中的字符串是不可變的,所以replaceAll不會修改字符串,但會返回一個新的String。

1

它應該是:

String test = "Hello! This is the content: __content__"; 
test = test.replaceAll("__content__", "Yeah!"); 
System.out.println("Output: " + test); 

replaceAll返回結果字符串!

相關問題