Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java / лекции / лекция 10.ppt
Скачиваний:
102
Добавлен:
17.04.2018
Размер:
123.9 Кб
Скачать

Лекция 9

Интернационализация

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

String String.format(String format, ...)

String String.format(Locale locale, String format, ...)

Форматная строка состоит из спецификаторов формата: %[индекс аргумента$][флаги][ширина][.точность]тип

Спецификатор формата

Индекс аргумента — определяет какой аргумент форматировать в этой позиции

Флаги — дополнительные параметры (зависят от типа) форматирования

Ширина — неотрицательное число, определяющее минимальное кол-во символов

Точность — неотрицательное число, ограничивающее кол-во символов

Тип преобразования задает тип аргумента

Категории типов преобразования

Общие

B,b (boolean), H,h (hash code), S,s (string)

Символьные

C,c (character)

Численные

Целые

D,d (decimal), O,o (octal), X,x (hexadecimal)

Вещественные

E,e (научный), f (float), G,g (переменный), A,a (hex)

Дата/время

T,t (time)

Процент

%

Перевод строки

n (new line)

Форматирование даты/времени

Тип преобразования даты/времени — двухсимвольный. (Второй символ — GNU date и POSIX strftime)

H — час 00-23, k — час 0-23

M — минуты 00-59

S — секунды 00-59

L — миллисекунды 000-999

z — смещение GMT (RFC 822)

Z — часовой пояс

B — месяц (полное название)

b — месяц (аббревиатура)

A — день недели (полное название)

a — месяц (аббревиатура)

C — год (00-99)

Y — год (0000-9999)

d — день месяца (01-31)

e — день месяца (1-31)

Форматирование даты/времени

Пример форматирования с использованием индекса аргумента:

Calendar c = ...;

String s1 = String.format("Duke's Birthday:

%1$tm %1$te,%1$tY", c);

Ошибки форматирования

Исключения:

UnknownFormatConversionException или UnknownFormatFlagsException - если указан неизвестный спецификатор или флаг

IllegalFormatWidthException или IllegalFormatPrecisionException если указана неправильная длина или точность

IllegalFormatConversionException если аргумент метода format не может быть преобразован

Форматирование сообщений

Класс MessageFormat форматирует текст, содержащий фрагменты, представленные переменными.

String msg =

MessageFormat.format("On {2}, a {0} destroyed {1} houses and caused {3} of damage", 99, new

GregorianCalendar(1999, 0,

1).getTime(), 10.0E7);

Результат:

On 1/1/99 12:00 AM, a hurricane destroyed 99 houses and caused 100,000,000 of damage

Указание типа и стиля

String msg =

MessageFormat.format("On

{2,date,long}, a {0} destroyed {1} houses and caused

{3,number,currency} of damage", 99, new GregorianCalendar(1999, 0,

1).getTime(), 10.0E7); Результат:

On January 1,1999, a hurricane destroyed 99 houses and caused $100,000,000 of damage

Типы и стили

Типы:

Стили (date и time)

number

short

time

medium

date

long

choice

Full

 

Стили (number)

 

integer

 

currency

 

percent

Соседние файлы в папке лекции