我确实检查了其他问题;这个问题的重点是最有效地解决这个特定问题。
有时您想创建一个具有指定长度的新字符串,并使用默认字符填充整个字符串。
也就是说,如果你能做到 new String(10, '*')
那就太好了并从那里创建一个新的字符串,长度为 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);
}
它仍然缺少任何检查(即,当长度为 0 时它不起作用)。我首先构造数组,因为我相信它比使用字符串连接或使用 StringBuffer 更快。
其他人有更好的解决方案吗?
最佳答案
Apache Commons Lang(可能在任何重要项目的类路径中都足够有用)具有 StringUtils.repeat() :
String filled = StringUtils.repeat("*", 10);
简单!
关于Java - 创建一个具有指定长度并填充特定字符的新字符串实例。最佳解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1802915/