Как центрировать текст, используя printf с флагом `^` в Java? - PullRequest
1 голос
/ 12 декабря 2011

Я знаю, что могу сделать это следующим образом:

String s = "Hello";
int maxLength = 10;
System.out.print(getSpaces((maxLength - s.length()) / 2) + s + getSpaces((maxLength - s.length()) / 2));

Но мне нужно сделать это простым способом. Согласно этой странице: Printf для Java Спецификация 3.0 (раздел 9. флаги):

Я могу центрировать текст, используя ^ в качестве флага с printf(), например:

String s = "Hello";
int maxLength = 10;
System.out.printf("%^" + maxLength + "s", s);

Но я получил эту ошибку:

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '^'

Как правильно использовать флаг ^ с printf()?

1 Ответ

2 голосов
/ 12 декабря 2011

Синтаксис формата String, включая информацию о спецификаторах и флагах, можно найти здесь: java.util.Formatter .

Я не вижу использования ^ в качестве флагагде-нибудь в этой документации.

Я полагаю, что ваша спецификация в ссылке выше не для стандартной Java, а скорее для сторонней библиотеки Lava3 Printf, производимой SharkySoft .Пожалуйста, дайте нам знать, если это библиотека, которую вы используете, или если вы пытаетесь сделать это с помощью ядра Java.

...