java字符串replaceAll的一个坑
来源:互联网 发布:英语口语交流软件app 编辑:程序博客网 时间:2024/06/16 05:05
场景:我想把一个字符串里的所有单引号在前面加个反斜杠转义。
首先我们要知道java的单引号是不需要转义的也就是说
System.out.println("'".equals("\'"));会打印true。Java规定转义斜杠后面跟不是特殊含义的符号,转义斜杠忽略,所以加上也没问题
于是,就只要把单引号替换成前面加个反斜杠:
String s = "SELECT * FROM tbl_user WHERE USER_NAME LIKE '黄%'";System.out.println(s.replaceAll("'", "\\'"));System.out.println("'".equals("\'"));System.out.println("\\n");然而得到结果:
SELECT * FROM tbl_user WHERE USER_NAME LIKE '黄%'
true
\n
前面加的反斜杠没有出现,纠结了一些时间,突然看到replaceAll方法上面的一个说明:
Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; seeMatcher.replaceAll
. Use java.util.regex.Matcher.quoteReplacement
to suppress the special meaning of these characters, if desired.
String s = "SELECT * FROM tbl_user WHERE USER_NAME LIKE '黄%'";System.out.println(s.replaceAll("'", Matcher.quoteReplacement("\\'")));System.out.println("'".equals("\'"));System.out.println("\\n");得到结果:
SELECT * FROM tbl_user WHERE USER_NAME LIKE \'黄%\'
true
\n
和预期的终于一样了。
0 0
- java字符串replaceAll的一个坑
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- JAVA字符串String中replace与replaceAll的区别
- Java字符串方法replace()、replaceAll()、replaceFirst()的区别和使用方法
- Java:String 字符串的替换函数 replace replaceAll replaceFirst
- Java replaceAll的陷阱
- 关于java中replace,replaceFirst,replaceAll的一个问题
- java replaceAll(,)方法的使用 多个逗号变一个
- Java String关于replaceall函数转义字符的一个小贴士
- replaceAll的坑
- java 字符串替换 replace与replaceAll
- java replaceAll 不正确的解决方法
- Android getContentResolver() 设置手机屏幕休眠时间
- app打包、混淆、加固和多渠道打包
- 导出oracle中的表结构或者数据
- 《您的设计模式》(CBF4LIFE)之“工厂方法模式”【整理】
- 第九周 项目一--猴子选大王(数组版)
- java字符串replaceAll的一个坑
- 解决WebUploader在谷歌浏览器中反应缓慢迟钝
- 第九周项目1-猴子选大王(数组版)
- Android Cordova 插件开发之编写自定义插件
- Objective-C method "" provided by method "" conficts with optional requirement
- jQuery Validate验证框架详解
- 宏定义(#define)和常量(const)的区别
- 一个农村孩子的大城市梦想之从头再来!
- iOS与JS交互实战篇