Java: перемещение знака процента или заполнение пробелами после знака процента

Мне нужно, чтобы мой вывод соответствовал следующему (меня в основном интересует процентное значение):

100% | 03 games
75%  | 04 games
14%  | 07 games

Мне сложно заставить их выстроиться друг под другом. Первое целое число необходимо выровнять по левому краю. Я пробовал использовать printf("%-3d%%", percentage) - они отлично выстраиваются, но есть разрыв между первым целым числом и знаком процента (когда он не равен 100):

100% | 03 games
75 % | 04 games
14 % | 07 games

Я также пробовал спецификатор DecimalFormat, "##0%", но проблема в том, что процентные значения с разным количеством цифр не совпадают - всегда есть только один пробел между % и |, хотя иногда их должно быть два или три.

100% | 03 games
75% | 04 games
14% | 07 games 

Как я могу это решить? Есть ли способ добавить пробелы после знака процента? Заранее спасибо.


person William Mizzi    schedule 19.04.2015    source источник
comment
Попробуйте изменить шрифт консоли на consolas или courier, если это возможно   -  person huseyin tugrul buyukisik    schedule 19.04.2015


Ответы (1)


Дважды используйте String.format:

String inner = format("%d%%", yourNumber); // creates "42%"
String outer = format("%-4s", inner); // creates "42% "
person Andrey Tyukin    schedule 19.04.2015