- •Нововведения Java5
- •План лекции
- •Проблема
- •java.lang.CharSequence
- •java.lang.StringBuilder
- •java.lang.Appendable
- •java.lang.Readable
- •Проблема
- •Форматированные ввод и вывод
- •java.util.Formatter
- •java.util.Formatter
- •java.util.Formatter
- •java.util.Formatter
- •Строка форматирования
- •Преобразующие спецификаторы формата
- •Возможности форматирования
- •Возможности форматирования
- •Возможности форматирования
- •Метод printf()
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •Проблема
- •Обновленные коллекции
- •Проблема
- •Обновленная рефлексия
- •Пример использования аннотаций
- •Проблема
- •java.util.concurrent
- •java.util.concurrent
- •Изменения в пакете java.lang
- •Изменения в пакете java.util
- •Нововведения Java7
- •План лекции
- •Проблема
- •Бинарные литералы
- •Проблема
- •Подчеркивание в числовых литералах
- •Подчеркивание в числовых литералах
- •Проблема
- •Проблема
- •Строки в предложениях switch
- •Проблема
- •Вывод типа (type inference)
- •Проблема
- •Проблема
- •Блок try с ресурсами
- •Блок try с ресурсами
- •Проблема
- •Проблема
- •Проблема
- •Отлов исключений нескольких типов
- •Спасибо за внимание!
- •Дополнительные источники
java.util.Formatter
Важные методы
Formatter format(String fmtString,
Object ... args)
Форматирует указанные аргументы в соответствии со строкой форматирования
Formatter format(Locale |
loc, |
String |
fmtString, |
Object |
... args) |
Форматирует указанные аргументы в соответствии со строкой форматирования и указанной локализацией
11
java.util.Formatter
Важные методы
IOException ioException()
Возвращает объект исключения, генерируемый объектом-приемником, иначе null
Appendable out()
Возвращает ссылку на объек-приемник выходных данных
Locale locale()
Возвращает ссылку на объект локализации
12
java.util.Formatter
Важные методы
String toString()
Возвращает объект типа String, содержащий отформатированный вывод
void flush()
Переносит информацию из буфера форматирования
void close()
Закрывает объект форматировщика, освобождает ресурсы
13
Строка форматирования
Строка форматирования состоит из:
простых символов Просто копируются в вывод
спецификаторов формата Определяют способ отображения аргументов
Спецификатор формата:
знак процента (%)
преобразующий спецификатор формата
Formatter fmt = new Formatter(); fmt.format("Formatting %s is easy! %d %f",
"with Java", 15, 12.3);
14
Преобразующие спецификаторы формата
Спецификатор |
Преобразование |
%a %A |
Шестнадцатеричное значение с плавающей точкой |
%b %B |
Булево значение |
%c %C |
Символьное значение |
%d |
Десятичное целое значение |
%h %H |
Хэш-код аргумента |
%e %E |
Экспоненциальное представление аргумента |
%f |
Десятичное значение с плавающей точкой |
%g %G |
Выбирает более короткое представление из двух: %f и %e |
%o |
Восьмеричное целое значение аргумента |
%n |
Символ новой строки |
%s %S |
Строковое представление аргумента |
%t %T |
Время и дата |
%x %X |
Шестнадцатеричное целое значение аргумента |
%% |
Знак процента |
15
Возможности форматирования
Порядковый номер аргумента
Позволяет использовать не текущий аргумент, а заданный
fmt.format("%3$d %2$d %1$d", 1, 2, 3); // 3 2 1
Относительный номер
Позволяет несколько раз вывести одно и то же значение без явной нумерации
Calendar c = Calendar.getInstance(); fmt.format("Today is day %te of %<tB, %<tY", c); // Today is day 4 of December, 2006
16
Возможности форматирования
Управление регистром вывода
fmt.format("Some %s", "String"); //Some String fmt.format("Some %S", "String"); //Some STRING
Сложное форматирование времени и даты
fmt.format("Now is %tH:%<tM of %<td.%<tm.%<ty \n", c); fmt.format("Now is %tl:%<tM%<tp of %<te %<tB %<tY \n", c);
//Now is 20:03 of 04.10.09
//Now is 8:03pm of 4 October 2009
Задание минимальной ширины поля
fmt.format("%3s %3s %3s %3s ", "1", "22", "333", "4444");
//1 22 333 4444
17
Возможности форматирования
Задание точности вывода для вещественных значений
fmt.format("%10.2f %10.8f", Math.PI, Math.PI);
// 3.14 3.14159265
Выравнивание вывода
fmt.format("%-10.2f|%10.2f", Math.PI, Math.PI); // 3.14 | 3.14
Разделение групп цифр и т.д.
fmt.format("%,d", Integer.MAX_VALUE); // 2,147,483,647
18
Метод printf()
Автоматически создает и использует экземпляр класса Formatter
Объявлен в классах:
java.io.PrintWriter
java.io.PrintStream
Имеет такие же параметры, что и метод
Formatter.format()
19
java.util.Scanner
Конструкторы
Задают один из возможных источников данных
С указанием кодовой таблицы и без
File
InputStream
java.nio.channels.ReadableByteChannel
Используя Unicode
Readable
String
20