Ответ 1
Шаблон:
%[argument_index$][flags][width][.precision]conversion
Необязательный аргумент_индекс - это десятичное целое число, указывающее положение аргумента в список аргументов. Первый аргумент на которые ссылается "1 $", вторая на "2 $" и т.д.
Необязательные флаги - это набор символы, которые изменяют вывод формат. Множество действительных флагов зависит от на преобразование.
Необязательная ширина - это десятичное целое число, указывающее минимум количество символов, которые должны быть записаны в выход.
Дополнительная точность - это неотрицательное целое число после запятой используется для ограничения количества персонажи. Конкретное поведение зависит от преобразования.
Требуемое преобразование является символ, указывающий, как аргумент должен быть отформатирован. Набор действительных конверсии для данного аргумента зависит от типа данных аргумента.
%1$
относится к первой подстановке. В этом случае строка str
.
#
- это флаг, в котором говорится, что результат должен использовать зависимую от преобразования альтернативную форму.
http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html