1、当使用String中的replaceFirst(使用给定的参数 replacement 替换字符串第一个匹配给定的正则表达式的子字符串。)进行替换时,当值中出现$时会提示Cause: java.lang.IndexOutOfBoundsException: No group 2异常,如:
sql = sql.replaceFirst("\\?", value);
就是当value的值为:$2a$10$47lsFAUlWixWG17Ca3M/r.EPJVIb7Tv26ZaxhzqN65nXVcAhHQM4i,那么就会抛出异常,其解决办法为:将值通过 Matcher.quoteReplacement(value)转换一下即可。