代码:
String s="@Param(\"list\")";
System.out.println(s.contains(s));
System.out.println(s.contains("@Param\\(\"list\"\\)"));
System.out.println(s.replaceAll(s,"AAA"));
System.out.println(s.replaceAll("@Param\\(\"list\"\\)", "BBB"));
打印:
true
false
@Param("list")
BBB
原因:
contains没有使用正则,replace使用了正则,小括号是正则表达式的关键字,所以replace和replaceAll中遇到正则表达式关键字都要加反斜杠,而contains则不用加反斜杠。