apache Common stringUtils.replacePattern vs java.lang.String.replaceAll

时间:2013-08-30 17:45:05

标签: java string replace replaceall apache-stringutils

我试图了解使用apache.commons.StringUtils.replacePattern()而不是java.lang.String.replaceAll()函数的优缺点。我听说replacePattern()函数提高了性能,但是我找不到任何javaDocs或任何流行的java论坛中的声明。如果使用replacePattern()方法还有其他任何优点,请告诉我。

谢谢, Yeshwanth

1 个答案:

答案 0 :(得分:1)

以下是OpenJDK 8中String.replaceAll的来源:

public String replaceAll(String regex, String replacement) {
    return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}

以下是StringUtils.replacePattern的来源:

public static String replacePattern(final String source, final String regex, final String replacement) {
    return Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement);
}

这些方法之间的唯一区别是replacePattern传递DOTALL option而replaceAll不传递。