我經常在Java中使用方法replace(CharSequence,CharSequence)
,但今天我遇到了一些我不太瞭解的東西。Java中替換方法的說明
當我這樣做:
"|||".replace("||","| |");
爲什麼它會導致:| ||
而不是| | |
?爲什麼第二個|
不能包含兩種模式?
要解決我的問題,我必須寫"|||".replace("||","| |").replace("||","| |");
看起來有點多餘。
任何人有一個解釋,以幫助我更好地理解背後的機制?
編輯
所以,有人說,它是在特定的情況下,在javadoc中指定,但它是錯的例子如下:
* The replacement proceeds from the beginning of the string to the end, for
* example, replacing "aa" with "b" in the string "aaa" will result in
* "ba" rather than "ab".
所以這是從我的情況不同,因爲結果「ba」不再與「aa」匹配。而在我的情況下,結果「| ||」仍然包含模式。
注意特定用例是在方法 – Robin
@Robin的javadoc中明確提到沒有看到,我指的是這個文檔http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replace%28char,%20char%29他們不應該刪除這個例子... –
你應該閱讀文檔用CharSequence替換方法(你在問題中提到的方法)。在JDK7上它仍然包含這個例子 – Robin