我需要在一个大数据集上调用这个函数。我需要它尽可能高效,但仍然是可读的。我可以通过使用不同的大写或空白检查函数来提高效率吗?
public static String nameFormat(String title, String firstname, String lastName) {
if (StringUtils.isBlank(firstname) && StringUtils.isBlank(lastName)) {
return "Unknown";
}
StringBuilder fullNameSB = new StringBuilder(lastName.trim().toUpperCase());
fullNameSB.append(", ");
fullNameSB.append(WordUtils.capitalizeFully(firstname.trim()));
if (title != null) {
fullNameSB.append(" ");
// replace (mr.) with mr
title = title.trim().replaceAll("\\.|\\)|\\(", "");
fullNameSB.append("(");
fullNameSB.append(WordUtils.capitalize(title));
fullNameSB.append(")");
}
//Remove any double spaces that might be in a multipart first or surname
return fullNameSB.toString().replaceAll(" ", "");
}发布于 2015-11-04 17:33:12
我假设WordUtils和StringUtils是Apache?如果是这样的话,我们将帮助您链接到他们的在线文档/源。
优化时要做的第一件事是确保优化的是正确的东西。您可能会在这个方法中找到减少一些运行时间的方法,但是如果这个方法只占总运行时间的1%,那么这并不是很好地利用您的努力。
让我印象深刻的是奇怪情况下的所有安全措施。我可以向您保证,您的replaceAll调用是最慢的事情。也许上游代码应该确保title的形式是正确的,字符串被裁剪,并且没有双空格。
https://codereview.stackexchange.com/questions/109788
复制相似问题