print spaces with String.format()

dfa picture dfa · Jul 2, 2009 · Viewed 108.8k times · Source

how I can rewrite this:

for (int i = 0; i < numberOfSpaces; i++) {
    System.out.print(" ");
}

using String.format()?

PS

I'm pretty sure that this is possible but the javadoc is a bit confusing.

Answer

pjp picture pjp · Jul 2, 2009

You need to specify the minimum width of the field.

String.format("%" + numberOfSpaces + "s", ""); 

Why do you want to generate a String of spaces of a certain length.

If you want a column of this length with values then you can do:

String.format("%" + numberOfSpaces + "s", "Hello"); 

which gives you numberOfSpaces-5 spaces followed by Hello. If you want Hello to appear on the left then add a minus sign in before numberOfSpaces.