【发布时间】:2010-12-01 23:01:52
【问题描述】:
public static String removeNonDigits(final String str) {
if (str == null || str.length() == 0) {
return "";
}
return str.replaceAll("/[^0-9]/g", "");
}
这应该只获取数字并返回,但没有按预期执行!有什么建议吗?
【问题讨论】:
-
如果您查看 String.replaceAll 方法,您会发现它正在执行 Pattern.compile(regex).matcher(this).replaceAll(replacement) 如果您经常这样做,效率会很低。更好的方法是将编译后的模式提取到常量中。