在Java中,JavaScript ltrim()rtrim()函数有什么好的替代方案?

最佳答案

使用正则表达式,您可以编写:

String s = ...
String ltrim = s.replaceAll("^\\s+","");
String rtrim = s.replaceAll("\\s+$","");

如果您必须经常这样做,则可以创建并编译模式以获得更好的性能:
private final static Pattern LTRIM = Pattern.compile("^\\s+");

public static String ltrim(String s) {
    return LTRIM.matcher(s).replaceAll("");
}

从性能的角度来看,一个快速的微基准测试(在JIT编译后)表明,正则表达式方法比循环慢大约5倍(对于100万次ltrim,它是0.49s对0.11s)。

我个人发现正则表达式方法更具可读性,并且不易出错,但是如果性能是一个问题,则应使用循环解决方案。

08-26 01:53