Android Java中删除'}'字符时应用崩溃问题求助
解决Android中
replaceAll("}", "")崩溃的问题 问题根源
replaceAll()的第一个参数是正则表达式,而}属于正则里的特殊字符(用来定义量词范围,比如{2,5}),直接传未转义的}会引发正则语法错误。桌面环境可能对这种错误有容错处理,但Android里会直接崩溃。
两种有效解决办法
方法1:用replace()代替replaceAll()
String.replace()会替换所有匹配的字符/字符串,而且不需要处理正则特殊字符,完全适配这种简单替换场景:
String processedStr = inputString.replace("}", "");
方法2:转义正则中的}
如果一定要用replaceAll(),得把}转义成\\}(Java字符串里的反斜杠需要双重转义):
String processedStr = inputString.replaceAll("\\}", "");
额外提醒
之前处理{时踩的坑也是同一个原因——{同样是正则特殊字符。以后遇到单个特殊字符替换,优先用replace()更省心,不用纠结正则转义的问题。
内容的提问来源于stack exchange,提问作者Javadi
相关产品推荐
相关产品推荐

