Використання printf для форматування в Java
Оси мисалдарға қарап лаб.жұмисты орындаңыздар.
public class Test
* Негізгі әдісі басталатин
* ориндау кез-келген Java-бағдарлама.
public static void main (String args[])
System.out.println("Hello, world!");
Використання printf для форматування в Java
Методprintf() належить класуPrintStream, який відповідає за виведення інформації. Вже знайомі нам методиprint() іprintln() також є методами класуPrintStream.
Методprintf визначений таким чином:
printf(String format, Object. args)
Перший аргументformat це рядок, що визначає шаблон, згідно з яким відбуватиметься форматування. Для її запису існують певні правила.
У попередньому прикладі формат був%4d, деd означає виведення десяткового цілого числа, а4 — означає те, що якщо кількість знаків в числі менше, чим 4, то воно буде спереду доповнено пробілами на кількість знаків, що бракує (до 4-х) (тим самим посунуто вправо).
Для наочності наведемо ще один приклад, який виводить стовпчиком кілька чисел.
System.out.printf("%6d%n%6d%n%6d%n%6d%n%6d%n%6d", 666666, 55555, 4444, 333, 22, 1);
На консоль буде виведено:
Тут у рядку форматування ми використовували кілька разів%6d%n, де кожне%6d задає формат для одного з чисел, зазначених далі як аргументи. Перше%6d форматує число666666, друге%6d форматує55555 і т.д.%n означає переклад рядка. Оскільки до всіх числах було застосовано форматування%6d, то числа, які містять менше 6 знаків, посунуті вправо набрак знаків і тим самим красиво вирівняні.
Загальний вигляд інструкції форматування наступний:
- % — спеціальний символ, що означає початок інструкцій форматування.
- [flags] — спеціальні символи форматування. Наприклад, прапор "+" означає, що числове значення має містити знак +, прапор "-" означає вирівнювання результату по лівому краю, прапор «,» встановлює роздільник тисяч у цілих чисел. Не обов'язковою частиною інструкції.
- [width] — позитивне ціле десяткове число, яке визначає мінімальну кількість символів, які будуть виведені. Не обов'язковою частиною інструкції.
- [.precision] — не негативне ціле десяткове число з точкою перед ним. Зазвичай використовується обмеження кількості символів. Специфіка поведінки залежить від виду перетворення. Не обов'язковою частиною інструкції.
- conversion — це символ, що вказує, як аргумент має бути відформатовано. Наприклад,d для цілих чисел,s для рядків,f для чисел з плаваючою точкою. Є обов'язковою частиною інструкції.
Усі можливі прапори та перетворення (conversion ) зазначені в офіційній документації. Тут ми не ставимо за мету вивчити їх усі, наша мета — навчитися застосовувати форматування. Тож розглянемо кілька прикладів.
Приклад 2. Розглянемо приклад демонструючий висновок на консольдо знайомства з форматуванням іпісля.
Без форматування
System.out.println("Корінь числа" + i + "рівний" + root);
На консоль буде виведено:
Корінь числа 675 дорівнює 25.98076211353316
У цьому випадку перетворення коду на рядок автоматично генерується компілятором Java. Цей спосібпоганий тим, що при великій кількості змінних і тексту для виведення легко втратити контроль над результатами.
З форматуванням
System.out.printf("Корінь числа %d дорівнює %f", i, root);
Де%d відповідає за виведення значення змінноїi, а%f за виведення значення змінноїroot. При цьому ми не використовуємо конкатенацію.
На консоль буде виведено:
Корінь числа 675 дорівнює 25,980762
Як бачимо, формат автоматично округляє число до 6 знаків після коми. Однак, при форматуванні ми можемо встановлювати таку кількість знаків після коми, яка нам потрібна, наприклад:
System.out.printf("Корінь числа %d дорівнює %.2f", i, root);
Виведе число із двома знаками після коми.
Далі на прикладах розглянемо найпопулярніші правила форматування.