Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Герберт Шилдт. Java 2, v5.0 (Tiger). Новые возм...doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
1.21 Mб
Скачать

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

Для форматирования отдельного символа используйте спецификатор . Он обеспечивает вывод соответствующего символьного аргумента без преобразования. Для форматирования строки воспользуйтесь спецификатором %s.

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

Для представления целого числа в десятичном формате используйте спецификатор %d. Для представления десятичного значения с плавающей точкой воспользуйтесь спецификатором %f. Для экспоненциального представления значения с плавающей точкой применяйте спецификатор . Общий вид экспоненциального представления чисел приведен в следующей строке: х.dddddde+/-уу

Спецификатор формата %g заставляет объект класса Formatter использовать один из спецификаторов %f или , предлагающий более короткое представление аргумента. В листинге 9.2 демонстрируется эффект применения спецификатора формата %g.

Листинг 9.2. Применение спецификатора формата %g

import java.util.*;

class FormatDemo2 {

public static void main(String args[]) {

Formatter fmt = new Formatter();

for(double i=1000; i < 1.0e+10; i *= 100) {

fmt.format("%g ", i);

System.out.println(fmt);

}

}

}

Далее приведен вывод результатов работы программы из листинга 9.2:

1000.000000

1000.000000 100000.000000

1000.000000 100000.000000 1.000000е+07

1000.000000 100000.000000 1.000000е+07 1.000000е+09

Вы можете выводить целые значения в восьмеричном и шестнадцатеричном представлениях с помощью применения спецификаторов и соответственно. Например, следующая строка:

fmt.format("Hex: %x, Octal: %о", 196 196);

формирует следующий вывод:

Hex: c4, Octal: 304

Вы можете выводить значения с плавающей точкой в шестнадцатеричном представлении, используя спецификатор формата . Формат, создаваемый этим спецификатором, на первый взгляд может показаться странным. Дело в том, что в нем применяется форма представления числа, подобная экспоненциальной и состоящая из шестнадцатеричных мантиссы и порядка. В следующей строке приведен общий вид отформатированного числа:

0x1.sigpexp

в этой записи параметр sig содержит дробную часть мантиссы, а параметр ехр — порядок числа. Символ р отмечает начало порядка. Например, следующий вызов:

fmt.format (“%а”, 123.123);

формирует приведенный в следующей строке вывод:

0x1.ec7df3b645aldp6

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

Один из наиболее мощных спецификаторов преобразования формата — спецификатор %t. Он позволяет форматировать информацию о времени и дате. Этот спецификатор действует несколько иначе, чем другие, поскольку он требует применения суффикса для описания отображаемой части и точного формата выбранных времени и даты. Суффиксы перечислены в табл. 9.3. Например, для отображения минут, Вы могли бы использовать спецификатор %tM, в котором суффикс M показывает минуты в двух символьном поле. Аргумент, относящийся к спецификатору %t, должен быть типа Calendar, Date, Long или long.

Таблица 9.3. Суффиксы формата для вывода времени и даты

Суффикс

Вывод, замещающий суффикс

а

Сокращенное название дня недели

А

Полное название дня недели

b

Сокращенное название месяца

В

Полное название месяца

c

Стандартное представление в виде: день, месяц чч:мм:сс часовой пояс, год

С

Первые две цифры года

d

День месяца как десятичное целое (от 01 до 31)

D

месяц/день/год

е

День месяца как десятичное целое (от 1 до 31)

F

год-месяц-день

h

Сокращенное название месяца

Н

Час (от 00 до 23)

I

Час (от 1 до 12)

j

Номер дня в году как десятичное целое (от 001 до 366)

к

Час (от 0 до 23)

I

Час (от 1 до 12)

L

Миллисекунды (от 000 до 999)

m

Десятичный номер месяца (от 01 до 13)

М

Минуты как десятичное целое (от 00 до 59)

N

Наносекунды (от 000000000 до 999999999)

P

Региональный эквивалент AM или РМ заглавными буквами

p

Региональный эквивалент AM или РМ строчными буквами

Q

Миллисекунды от 1/1/1970

г

чч:мм (12-часовой формат)

R

чч:мм (24-часовой формат)

S

Секунды (от 00 до 60)

В листинге 9.3 продемонстрировано применение нескольких форматов.

Листинг 9.3. Форматирование времени и даты

import java.util.*;

class TimeDateFormat {

public static void main(String args[]) {

Formatter fmt = new Formatter();

Calendar cal = Calendar.getInstance();

// Display standard 12-hour time format.

fmt.format("%tr", cal);

System.out.println(fmt);

// Display complete time and date information.

fmt = new Formatter();

fmt.format("%tc", cal);

System.out.println(fmt);

// Display just hour and minute.

fmt = new Formatter();

fmt.format("%tl:%tM", cal, cal);

System.out.println(fmt);

// Display month by name and number.

fmt = new Formatter();

fmt.format("%tB %tb %tm", cal, cal, cal);

System.out.println(fmt);

}

}

Далее приведен образец вывода программы из листинга 9.3:

09:17:15 AM

Sun Dec 12 09:17:15 CST 2004

9:17

December Dec 12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]