遇到“replaceall”命令有问题

时间:2014-04-06 22:18:10

标签: java

我有一个字符串

s1 = "7+8";

s2 = "7+";

我使用以下代码从s1中减去s2

System.out.println(s1.replaceAll(s2,""));

但是输出为

"+8"

为什么会这样?

3 个答案:

答案 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, ""));