#java #printf
#java #printf
Вопрос:
Здравствуйте, я хочу напечатать что-нибудь, чтобы они были выровнены.
for (int i = 0; i < temp.size(); i ) {
//creatureT = "[" temp.get(i).getCreatureType() "]";
creatureS = "t" temp.get(i).getName();
creatureT = " [" temp.get(i).getCreatureType() "]";
System.out.printf(creatureS "a",creatureT "n");
}
и на выходе получается
Lily [Animal]
Mary [NPC]
Peter [Animal]
Squash [PC]
Я просто хочу, чтобы [Animal], [NPC] и [PC] были выровнены следующим образом
Lily [Animal]
Mary [NPC]
Peter [Animal]
Squash [PC]
Допустим, я знаю, что ни одно имя не будет длиннее 15 символов.
Комментарии:
1. наверняка некоторые из ваших прошлых ответов помогли вам. Почему бы не принять некоторые из них? Это показало бы, что вы цените время и усилия, потраченные на попытку помочь вам.
Ответ №1:
Я думаю, вы обнаружите, что все форматирование намного проще выполнять в самой строке формата, т.Е.
System.out.printf("t%s [%s]n", creature.getName(), creature.getCreatureType());
что бы печатать
Lily [Animal]
etc...
Вы можете ознакомиться с документацией по форматированию строк о точном формате, который следует использовать для печати строки с минимум 15 пробелами для достижения эффекта выравнивания, что-то вроде
System.out.printf("ts[%s]n", creature.getName(), creature.getCreatureType());
Ключевым моментом является указание «ширины» в 15 символов для первого элемента в списке аргументов в s
.
Ответ №2:
Основная идея заключается в том, что вы описываете полный формат в строке формата (первый аргумент) и предоставляете все динамические данные в качестве дополнительных свойств.
Вы смешиваете эти два параметра, создавая строку формата из динамических данных (кажется, имя существа), что приведет к неожиданным результатам. Сделайте это вместо:
Creature t = temp.get(i);
System.out.printf("ts [%s]n", t.getname(), t.getCreatureType());
Ответ №3:
форматирование подобным образом s делает что-то вроде строки текста правильным. Вы должны написать %-15s, чтобы освободить место для первой строки на 15 диаграммах. 1-я строка будет выровнена по левому краю, а следующая строка будет начинаться с 16-й диаграммы
Lily [Animal]
Mary [NPC]
Peter [Animal]
Squash [PC]