创建长度为'x'的字符串的最快方法,所有字符串都由Java

时间:2017-05-23 13:23:43

标签: java

我有一个应用程序正在为遗留应用程序创建一个平面文件。创建平面文件时常见的事情是必须用零或空格“填充”空字段。今天,解决问题的方法是让所有类为这个填充空间创建一个字符串文字,这个文字难看且难以阅读并验证给定字段的长度。

我想用以下常见函数替换它:

public String pad(int len, char c) {
    StringBuffer sb = new StringBuffer();
    for (int i=0; i<len; i++) {
        sb.append(c);
    }
    return sb.toString();
}

但是我担心性能,因为这个函数会在代码库中相当普遍使用。我的思绪然后倾向于将这个函数包装在缓存中(多键哈希映射,也就是哈希表),但我觉得必须采用更标准的方法来做这样的事情。

实现这一目标的最简单方法是什么?

3 个答案:

答案 0 :(得分:1)

如果重要的是表现我会建议

public static String pad(int len, char c) {
    char[] charArray = new char[len];
    Arrays.fill(charArray, c);
    return new String(charArray);
}

答案 1 :(得分:1)

如果您不想使用第三方库(您应该这样做,因为它们对于发生的事情更加明显),您可以这样做:

public String pad(int len, char c) {
    final char[] array = new char[len];
    Arrays.fill(array, c);
    return new String(array);
}

答案 2 :(得分:0)

如果您使用的是java 8,请使用join函数:

String.join("", Collections.nCopies(numberOfTimes, repeatString));

否则使用,

return  new String(new char[numberOfTimes]).replace("\0", repeatString);