Apache StringUtils与Java实现的replace()

Oh *_*oon 10 java replace apache-stringutils

Java 1.4.2的replace实现和Apache 2.3的实现有什么区别?是否有一个性能增益?

Java 1.4.2替换

Apache 2.3替换

Joa*_*uer 18

String.replace()您链接的方法有两个char值,因此它只会将字符替换为另一个(可能是多次,但是).

StringUtils.replace()另一方面,该方法将String值作为搜索字符串和替换,因此它可以替换更长的子字符串.

Java中的可比方法是replaceAll().replaceAll()可能比StringUtils方法慢,因为它支持正则表达式,因此引入了首先编译搜索字符串并运行正则表达式搜索的开销.

请注意,引入的Java 5 String.replace(CharSequence, CharSequence)与其执行的操作相同StringUtils.replace(String,String)(除非它抛出NullPointerException任何参数null).请注意,这CharSequence是一个实现的接口String,因此您可以String在此处使用普通旧对象.

  • +1指出java.lang.String.replaceAll(...)使用正则表达式并且它很慢.StringUtils.replace(...)使用的算法远远优于replaceAll() (2认同)