现在的位置: 首页 > 综合 > 正文

Java正则表达式与replaceAll()与replace()的区别

2018年12月14日 ⁄ 综合 ⁄ 共 1018字 ⁄ 字号 评论关闭

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], 而第二个参数就代表普通的字符串了。




抱歉!评论已关闭.