string replace 与 replaceall的区别

来源:互联网 发布:linux 赋予用户权限 编辑:程序博客网 时间:2024/05/18 16:36

replace 与 replaceall在特殊字符的处理上会存在差别

replace
public String replace(CharSequence target, CharSequence replacement)

使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。
参数:
target - 要被替换的 char 值序列
replacement - char 值的替换序列
返回:
所得 String
抛出:
NullPointerException


- 如果 target 或 replacement 为 null。


replaceAll

public String replaceAll(String regex, String replacement)

使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
调用此方法的 str.replaceAll(regex, repl) 形式与以下表达式产生的结果完全相同:

Pattern.compile(


regex).matcher(str).replaceAll(repl)
注意,在替代字符串中使用反斜杠 (\) 和美元符号 ($) 与将其视为字面值替代字符串所得的结果可能不同;请参阅 Matcher.replaceAll。如有需要,可使用 Matcher.quoteReplacement(java.lang.String)
取消这些字符的特殊含义。

参数:
regex - 用来匹配此字符串的正则表达式
replacement - 用来替换每个匹配项的字符串
返回:
所得 String
抛出:
PatternSyntaxException - 如果正则表达式的语法无效


replace 主要是针对字符串的替换,而 replaceAll主要是针对正则表达式的替换



0 0