Java - Create a new String instance with specified length and filled with specific character. Best solution?
java, string
Solution
Apache Commons Lang (probably useful enough to be on the classpath of any non-trivial project) has StringUtils.repeat():
String filled = StringUtils.repeat("*", 10);
Easy!
Problem
I did check the other questions; this question has its focus on solving this particular question the most efficient way. Sometimes you want to create a new string with a specified length, and with a default character filling the entire string. ie, it would be cool if you could do `new String(10, '*')` and create a new String from there, with a length of 10 characters all having a *. Because such a constructor does not exist, and you cannot extend from String, you have either to create a wrapper class or a method to do this for you. At this moment I am using this: ``` 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); } ``` It still lacks any checking (ie, when length is 0 it will not work). I am constructing the array first because I believe it is faster than using string concatination or using a StringBuffer to do so. Anyone else has a better sollution?