Я проверял другие вопросы; этот вопрос фокусируется на наиболее эффективном решении этого конкретного вопроса.
Иногда вы хотите создать новую строку с указанной длиной и с символом по умолчанию, заполняющим всю строку.
т.е. было бы здорово, если бы вы могли сделать 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 для этого.
У кого-нибудь есть лучшее решение?