一尘不染

Java-创建一个具有指定长度并用特定字符填充的新String实例。最佳解决方案?

java

我确实检查了其他问题;这个问题的重点是最有效地解决这个特定问题。

有时您想创建一个具有指定长度的新字符串,并使用默认字符填充整个字符串。

也就是说,如果您可以new String(10, '*')从那里创建一个新的String(长度为10个字符,都带有*),那就太酷了。

因为这样的构造函数不存在,并且不能从String扩展,所以必须创建包装器类或方法来为您执行此操作。

目前,我正在使用此:

protected String getStringWithLengthAndFilledWithCharacter(int length, char charToFill) {
    char[] array = new char[length];
    int pos = 0;
    while (pos < length) {
        array[pos] = charToFill;
        pos++;
    }
    return new String(array);
}

它仍然缺少任何检查(即,当length为0时将不起作用)。我之所以首先构造数组,是因为我相信它比使用字符串合并或使用StringBuffer这样做要快。

还有谁有更好的解决方案?


阅读 447

收藏
2020-12-03

共1个答案

一尘不染

Apache Commons
Lang(可能非常有用,可以在任何不重要的项目的类路径中使用)具有StringUtils.repeat()

String filled = StringUtils.repeat("*", 10);

简单!

2020-12-03