String类中replaceAll方法不能替换美元符号$的问题解决
来源:互联网 发布:网络教育68所学校 编辑:程序博客网 时间:2024/06/07 01:33
原文链接: http://blog.csdn.net/wolfchou/article/details/8709783
我现在有这样一个字符串
想把它里面的",$,"替换成"$",这样首先会想到replace方法,直接str.replace(",$,","$");就可以了,试了一下确实也是可行的。
后来我又想如果str中有多个",$,"需要替换,只要改成replaceAll应该是不成问题的,我试了一下将str改为:
这样却不生效了,一个都没有替换。
最后网上查了一下,改为:
就可以了。
代码str.replaceAll(a,b),如果b字符串中含有反斜杠 (/) 和美元符号 ($),则会抛出异常。
需要使用Matcher.quoteReplacement(Java.lang.String)对字符串b进行处理,即:
str.replaceAll(a,Matcher.quoteReplacement(b))
以下为JDK1.6 API说明:
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 - 如果正则表达式的语法无效
从以下版本开始:
1.4
另请参见:
Pattern
Matcher.quoteReplacement(",$,"), Matcher.quoteReplacement("$")
- String类中replaceAll方法不能替换美元符号$的问题解决
- String类中replaceAll方法不能替换美元符号$的问题解决
- java String 类的replace 和replaceAll 方法替换“?”号
- java replaceall方法替换String的几种特殊情况
- String的replaceAll方法替换反斜线报异常
- String类replaceAll方法正则替换深入分析
- String的replaceAll方法
- String的ReplaceAll方法
- Java String类的replaceAll方法
- javascript中使用replaceAll()函数实现字符替换的方法
- Java String.replaceAll()的方法
- AS3中对String操作的replaceAll方法
- jdk中String对象的replace和replaceAll方法
- AS3中对String操作的replaceAll方法
- 如何使用String的replaceAll方法替换字符串中的反斜杠“\”或增加反斜杠“\”
- 如何使用String的replaceAll方法替换字符串中的反斜杠“\”或增加反斜杠“\”
- js/jq替换方法replaceAll的实现
- java中String字符串的替换函数:replace与replaceAll的区别
- android的ScrollView的简单使用
- 【程序员面试宝典】栈和队列相关面试题
- 【CRM项目01】登陆功能实现
- PyTorch —— LeNet实现中的bug以及由此的小想法
- Python学习一——Python下载安装
- String类中replaceAll方法不能替换美元符号$的问题解决
- Servlet学习笔记 -- day02 Request
- 接口
- 走进Vue.js
- IDEA使用--字体、编码和基本设置
- 测sort与qsort耗时
- define与const 比较
- 四元数姿态的梯度下降法推导和解读
- 笔记2--html基础知识