Java正則表達式與replaceAll()與replace()的區別

1:Java中反斜槓“\"是一個特殊字符, 表示轉義. 比如你想輸出兩個引號: " ", 那麼你在字符串中就需要這樣寫: \" \", 因爲" 在java中是特殊字符,需要被轉義才行. 同樣, 如果你想輸出一個 \, 那麼你需要在字符串中這樣寫: \\, 其中第一個反斜槓表示轉義,這樣就使得後面的反斜槓具有最一般的意思.

下面我們來看一下代碼:

public class ReplaceAllTest {
	public static String s = "\\,,,,,\"";
	public static void main(String[] args) {
		System.out.println(s);
	}
}
輸出:  \,,,,,"

2: 關於正則表達式, 在一般正則表達式中 \d 表示一位數字, 但是在Java中 反斜槓是特殊字符, 如果想要用 \d 表示一個數字首先需要對 \d 的 \ 進行轉義, 因此 在java中 \\d 才表示一位數字. 同理, 一般的正則表達是中 \\ (注意顏色)表示一個不同的反斜槓, 但是在Java中的正則表達式需要用 \\\\ 表示一個普通的 反斜槓. 其中前兩個反斜槓表示 \ , 後兩個反斜槓表示 \

3:JAVA中string.replace()和string.replaceAll()的區別及用法.

首先這兩者有着很大的區別, 在replace()中, 傳入的兩個參數 均表示普通的字符串, 即用第二個參數表示的字符串將對象(字符串對象)中和第一個參數表示的字符串相同的部分替換掉。replaceAll()中,第一個參數並不是普通意義上的字符串, 而是一個正則表達式; 意思是將對象中與第一個參數所表示的正則表達式相匹配的地方用第二個參數所表示的字符串替換.

下面我們來看一下代碼:

public class ReplaceAllTest {
	public static String s = "acdabcdadc";
	public static void main(String[] args) {
		System.out.println(s.replace("a", "A"));
		System.out.println(s.replaceAll("[abcd]", "[A]"));
	}
}
輸出:

AcdAbcdAdc
[A][A][A][A][A][A][A][A][A][A]

從輸出結果可以看出, replaceAll()中第一個參數表示的是正則表達式, 意思是: 包含a,b,c,d的任何字符, 因此 對象s 中的所有字符都被替換成了 [A], 而第二個參數就代表普通的字符串了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章