str.replaceAll和str.replace的区别不可小视

 我来答
星月小木木
推荐于2016-09-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9964万
展开全部
在jdk6.0的api中replaceAll()和replease()的解释分别如下:
replaceAll
public String replaceAll(String regex,
String replacement)

使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
参数:
regex - 用来匹配此字符串的正则表达式
返回:
得到的 String
抛出:
PatternSyntaxException - 如果正则表达式的语法无效
从以下版本开始:
1.4
另请参见:
Pattern
replace
public String replace(CharSequence target,
CharSequence replacement)

使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串。该替换从此字符串的开始一直到结束,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。
参数:
target - 要被替换的 char 值序列
replacement - char 值的替换序列
返回:
得到的字符串
抛出:
NullPointerException - 如果 target 或 replacement 为 null。
从以下版本开始:
1.5

注意:
public String replaceAll(String regex,
String replacement)
其中的第一个参数为正在表达式,而非字符串!!

public String replace(CharSequence target,
CharSequence replacement)这个才是字符串!!
示例代码如下:
public class Demo1 {
@Test
public void test(){
String str = "..abcd";
System.out.println(str.replaceAll("..", ""));
System.out.println(str.replace("..", ""));
}
}

结果为:
abcd

注意:第一行为空,因为在正在表达式当中"."代表任何字符,因此两个".."把所有字符都替换掉了,故输出为空。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式