Что значит этот 'String.format ("...");' в Java делать? - PullRequest
0 голосов
/ 23 января 2019
String.format("%-" + 3 + "." + 3 + "s", givenString);

Это должно добавить пробелы, но это не так.Я попробовал это на онлайн-компиляторе, и он складывает числа в строку.Я не понимаю, что это делает.Может кто-нибудь объяснить?

1 Ответ

0 голосов
/ 23 января 2019

public static String format(String format, Object... args) - это объявление метода.

String format = "%-" + 3 + '.' + 3 + 's';   // = %-3.3s
String.format(format, givenString);

Используется для динамического построения format, но в нем нет переменных, поэтому вы можете заменить его на String.format("%-3.3s", givenString);

В соответствии с форматом печатается строка длиной не более 3 символов. Он резервирует 3 символа в каждой строке и выравнивается по левому краю в случае, если длина строки типаString составляет менее 3 символов.

Демо:

System.out.println(String.format("%-3.3s", "ab"));  // "ab "
System.out.println(String.format("%-3.3s", "abc"));  // "abc"
System.out.println(String.format("%-3.3s", "abcd"));  // "abc"
System.out.println(String.format("%-3.3s", "a") + String.format("%-3.3s", "b"));  // "a  b  "

Подробнее в Документация

...