public static String formatQualifiedName(String... params) {
List<String> nonEmptyParams = new ArrayList<>(params.length);
for (String p : params) {
if (!StringUtils.isNullOrEmpty(p)) {
nonEmptyParams.add(p);
}
}
StringBuilder formatString = new StringBuilder();
for (int i = 0; i < nonEmptyParams.size(); i++) {
formatString.append("%s").append(".");
}
//消除最后多余的"."
if (formatString.charAt(formatString.length() - 1) == '.') {
formatString.deleteCharAt(formatString.length() - 1);
}
return String.format(formatString.toString(), nonEmptyParams.toArray(new String[0]));
}
formatQualifiedName("china", "zhejiang", ''hangzhou")----> "china.zhejiang.hangzhou",从使用情况来看,就是将params当成一个数组来操作。
这个函数个人认为没必要用formatString,直接遍历params,然后append就行了。