2017-01-14 6 views
0

Возможны ли вложенные форматы с java String.format? Примером может служить;Форматы вложения в String.format

String fooPadded = String.format("FOO:%1$10s", "foo"); 

// fooPadded:"FOO:  foo" 

String barPadded = String.format("%1$15s", fooPadded); 

// barPadded:" FOO:  foo" 

Вместо вызова 2 последовательных format методов, которые были бы дорогими с точки зрения производительности, я хочу, чтобы обернуть Foo правило с бар правило, в других терминах уменьшить формат одного.

+0

Почему вы считаете, что наличие одного формата String улучшит производительность? – Tunaki

+0

Нет, форматирование не дороговато. –

ответ

0

У вас проблемы с производительностью в вашей программе? Если это так, вы правы, когда хотите что-то сделать. Если нет, вы не должны. Если у вас есть, String.format() не будет моим первым подозреваемым или вторым, занять слишком много времени. Запустите меру, прежде чем вносить какие-либо изменения в ваш хороший и читаемый код.

То есть, я думаю, что способ ограничить одним вызовом format() является:

String barPadded = String.format("%5s%10s", "FOO:", "foo"); 

Я не думаю, что вы можете сделать вложенность за исключением двух вызовов, как в вашем вопросе.

И если "foo" оказалось ровно 11 символов, мой код не дал бы точного результата, как и код в вашем вопросе.