我有一个字符串
s1 = "7+8";
和
s2 = "7+";
我使用以下代码从s1中减去s2
System.out.println(s1.replaceAll(s2,""));
但是输出为
"+8"
为什么会这样?
答案 0 :(得分:3)
正则表达式"7+"
匹配"7"
的一个或多个实例。这是被替换的内容,留下"+8"
。
如果您想匹配完全字符串而不是正则表达式,请使用replace
代替replaceAll
。
s1.replace(s2, "")
答案 1 :(得分:1)
方法replaceAll()
使用正则表达式(正则表达式)来确定要替换的内容。
String java.lang.String.replaceAll(String regex,String replacement): 将给定替换的给定正则表达式匹配的此字符串的每个子字符串替换。
您可以做什么?您可能希望使用使用字符串字面替换的方法replace()
:
System.out.println(s1.replace(s2, ""));
答案 2 :(得分:0)
作为您问题的答案(为什么会发生这种情况?),String.replaceAll将RegEx作为第一个参数。
您可能想要使用String.replace
System.out.println(s1.replace(s2, ""));