Форматирование строк и чисел в Java

Форматирование чисел и строк в Java можно осуществить и вывести с помощью команды printf. Команда printf понимает последовательность символов, известную как спецификация формата.

Затем printf берет строку текста и форматирует ее на основе переданной спецификации формата.

Предположим, что в качестве примера мы хотим, чтоб в окне «Вывод» текст отображался аккуратно, например:

Форматирование строк в Java

Первый столбец выровнен по левому краю, а второй - выровнен по правому. Код для заголовков Exam_Name и Exam_Grade был таким:

String heading1 ="Exam_Name";
String heading2 = "Exam_Grade";

System.out.printf("%-15s %15s %n", heading1, heading2);

Чтобы получить выровненный по левому краю столбец, вам нужен символ процента, символ минуса, количество символов, а затем буква «s» (строчные буквы). Таким образом, «%-15s» означает пятнадцать символов, выровненных по левому краю.

Чтобы получить выровненный по правому краю столбец, используется та же последовательность символов, за исключением знака минус.

Для получения новой строки используется %n. Обратите внимание, что символы окружены двойными кавычками.

После запятой вы набираете текст, который хотите отформатировать. Первая запятая в приведенном выше коде отделяет спецификацию формата от форматируемого текста.

Вот несколько таблиц различных вариантов.

Форматирование строк Java

%s Форматируется строка с таким количеством символов, которое необходимо
%15s Форматируется строка с указанным количеством символов и выравнивание по правому краю
%-15s Форматируется строка с указанным количеством символов и выравнивание по левому краю

Если вы хотите отформатировать числа, вы можете использовать символ «d» или, для чисел с плавающей запятой, символ «f».

Форматирование целых чисел Java

%d Форматируется строка с таким количеством цифр, которое необходимо
%4d Форматируется строка с указанным количеством целых чисел. Заполнит пробелы слева, если недостаточно целых чисел
%04d Форматируется строка с указанным количеством целых чисел. Заполнит нулями слева, если недостаточно целых чисел

Форматирование чисел с плавающей точкой Java

%f Форматируется строка с таким количеством цифр, которое необходимо. Всегда даст вам 6 знаков после запятой
%.2f Форматируется строка с таким количеством чисел, которое необходимо. Даст 2 знака после запятой
%10.2f Форматируется 2 знаков после запятой, но вся строка займет 10 символов. Если чисел недостаточно, пробелы дополнятся слева от чисел

Вот несколько примеров кода форматирования строк, целых чисел и чисел с плавающей точкой в Java. Попробуйте их сами.

System.out.printf("%s %d %n", "Общее:", 34573);

Текст «Общее:» будет отформатирован как строка (% s), а цифры 34573 будут отформатированы как цифры (% d):

Форматирование в Java 1


System.out.printf("%s %10d %n", "Общее:", 34573);

То же, что и выше, только цифры занимают 10 мест с пробелами слева в качестве отступов:

Форматирование в Java 2


System.out.printf("%-10d %10d %n", 22334, 34573);

Две числа. Первое выровнено по левому краю; второе - по правому:

Форматирование в Java 3


System.out.printf("%010d %10d %n", 22334, 34573);

Снова два числа. Первое дополнено нулями спереди. Второе - выравнено по правому краю, но пробелы используются как отступы слева вместо нулей:

Форматирование в Java 4


System.out.printf("%f %n", 345.73);

Отформатировано число с плавающей запятой и добавлены новые строковые символы. Число с плавающей запятой будет иметь 6 знаков после запятой:

Форматирование в Java 5


System.out.printf("%.2f %n", 34.573);

То же, что и выше, но форматируется только до двух знаков после запятой:

Форматирование в Java 6


Наконец, вот снова та таблица, которая была вначале этого урока по форматированию в Java:

Форматирование строк в Java

И вот код для вышеупомянутого форматированного вывода:

package stringformatting;

public class StringFormat {

    public static void main(String[] args) {
        String heading1 ="Exam_Name";
        String heading2 = "Exam_Grade";
        String divider = "-----------------------------------";
        
        String course1 = "Java";
        String course2 = "PHP";
        String course3 = "VB NET";
        
        String grade1 = "5";
        String grade2 = "4";
        String grade3 = "3";
        
        System.out.println("");
        System.out.printf("%-15s %15s %n", heading1, heading2);
        System.out.println(divider);
        
        System.out.printf("%-15s %10s %n", course1, grade1);
        System.out.printf("%-15s %10s %n", course2, grade2);
        System.out.printf("%-15s %10s %n", course3, grade3);
        
        System.out.println(divider);
        System.out.println("");
    }
    
}

Поиграйте с форматированием, это пойдет на пользу для закрепления материала. Если вы получаете сообщения об ошибках, возможно, вы перепутали форматирование «s» с форматированием «d»!

В следующем разделе мы продолжим и рассмотрим методы Java.

Дата обновления: 16.08.2019

  • Текущий 0.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

/Рейтинг: 0.0/5 (0 голос(ов) всего)

Добавить комментарий (без регистрации)