Joh*_*dli 19 java regex string replaceall
我的java代码中有非常奇怪的错误,无法弄清楚出了什么问题.
假设我有这段代码:
private void test()
{
String test1 = replace("1.25");
String test2 = replace("1.5");
String test3 = replace("1.75");
}
private String replace(String s)
{
s = s.replaceAll(".25", "¼");
s = s.replaceAll(".5", "½");
s = s.replaceAll(".75", "¾");
return s;
}
Run Code Online (Sandbox Code Playgroud)
然后结果将是:
test1 ="¼"
test2 ="½"
test3 ="½"???????????
有人可以解释为什么test3变成"½"?
ars*_*jii 27
你正在使用replaceAll(),它采用正则表达式.在regex-land中,.意思是"任何角色".replace()改为使用,它适用于文字字符串.
因为replaceAll需要正则表达式.这意味着.被解释为一个通配符也相匹配7,这样.5匹配75.您可以使用正则表达式进行转义,\但请注意,这也是一个字符串,这意味着您必须转义两次:因此replaceAll("\\.5", "½")将执行您想要的操作.
问题是正则表达式.意味着任何字符.replaceAll将正则表达式作为参数,因此您应该使用其他方法,例如replace.
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |