Чтение онлайн

на главную - закладки

Жанры

Программирование на Java

Вязовик Н.А.

Шрифт:

В классе Random определено также несколько методов, которые возвращают псевдослучайные величины для примитивных типов Java.

Дополнительно следует отметить наличие двух методов: double nextGaussian - возвращает случайное число в диапазоне от 0.0 до 1.0 распределенное по нормальному закону, и void nextBytes(byte[] arr) - заполняет массив arr случайными величинами типа byte.

Пример использования Random:

public class Test {

public Test {

}

public static void main(String[] args) {

Test test = new Test;

Random r = new Random(100);

// Generating the same sequence numbers

for(int cnt=0;cnt<9;cnt++) {

System.out.print(r.nextInt + " ");

}

System.out.println;

r = new Random(100);

for(int cnt=0;cnt<9;cnt++) {

System.out.print(r.nextInt + " ");

}

System.out.println;

// Generating sequence of bytes

byte[] randArray = new byte[8];

r.nextBytes(randArray);

test.dumpArray(randArray);

}

void dumpArray(byte[] arr) {

for(int cnt=0;cnt< arr.length;cnt++) {

System.out.print(arr[cnt]);

}

System.out.println;

}

}

Пример 14.24.

Результатом будет:

– 1193959466 -1139614796 837415749 -1220615319 -1429538713 118249332 -951589224 -1193959466 -1139614796 837415749 -1220615319 -1429538713 118249332 -951589224 81;-6;-107;77;118;17;93; -98;

Пример 14.25.

Локализация

Класс Locale

Класс Locale предназначен для отображения определенного региона. Под регионом принято понимать не только географическое положение, но также языковую и культурную среду. Например, помимо того, что указывается страна Швейцария, можно указать также и язык - французский или немецкий.

Определено два варианта конструкторов в классе Locale:

Locale(String language, String country)

Locale(String language, String country,

String variant)

Первые два параметра в обоих конструкторах определяют язык и страну, для которой определяется локаль, согласно кодировке ISO. Список поддерживаемых стран и языков можно получить и с помощью вызова статических методов Locale.getISOLanguages Locale.getISOCountries, соответственно. Во втором варианте конструктора указан также строковый параметр variant, в котором кодируется информация о платформе. Если здесь необходимо указать дополнительные параметры, то их требуется разделить символом подчеркивания, причем, более важный параметр должен следовать первым.

Пример использования:

Locale l = new Locale("ru","RU");

Locale l = new Locale("en","US","WINDOWS");

Статический метод getDefault возвращает текущую локаль, сконструированную на основе настроек операционной системы, под управлением которой функционирует JVM.

Для наиболее часто использующихся локалей заданы константы. Например, Locale.US или Locale.GERMAN.

После того как экземпляр класса Locale создан, с помощью различных методов можно получить дополнительную информацию о локали.

public class Test {

public Test {

}

public static void main(String[] args) {

Test test = new Test;

Locale l = Locale.getDefault;

System.out.println(l.getCountry + " " +

l.getDisplayCountry + " " + l.getISO3Country);

System.out.println(l.getLanguage + " " +

l.getDisplayLanguage + " " + l.getISO3Language);

System.out.println(l.getVariant + " " +

l.getDisplayVariant);

l = new Locale("ru","RU","WINDOWS");

System.out.println(l.getCountry + " " +

l.getDisplayCountry + " " + l.getISO3Country);

System.out.println(l.getLanguage + " " +

l.getDisplayLanguage + " " + l.getISO3Language);

System.out.println(l.getVariant + " " +

l.getDisplayVariant);

}

}

Пример 14.26.

Результатом будет:

US United States USA

en English eng

RU Russia RUS

ru Russian rus

WINDOWS WINDOWS

Пример 14.27.

Класс ResourceBundle

Абстрактный класс ResourceBundle предназначен для хранения объектов, специфичных для локали. Например, когда необходимо получить набор строк, зависящих от локали, используют ResourceBundle.

Применение ResourceBundle настоятельно рекомендуется, если предполагается использовать программу в многоязыковой среде. С помощью этого класса легко манипулировать наборами ресурсов, зависящих от локалей, их можно менять, добавлять новые и т.д.

Набор ресурсов - это фактически набор классов, имеющих одно базовое имя. Далее наименование класса дополняется наименованием локали, с которой связывается этот класс. Например, если имя базового класса будет MyResources, то для английской локали имя класса будет MyResources_en, для русской - MyResources_ru. Помимо этого, может добавляться идентификатор языка, если для данного региона определено несколько языков. Например, MyResources_de_CH - так будет выглядеть швейцарский вариант немецкого языка. Кроме того, можно указать дополнительный признак variant (см. описание Locale ). Так, описанный раннее пример для платформы UNIX будет выглядеть следующим образом: MyResources_de_CH_UNIX .

Загрузка объекта для нужной локали производится с помощью статического метода getBundle.:

ResourceBundle myResources =

ResourceBundle.getBundle("MyResources",

someLocale);

На основе указанного базового имени (первый параметр), указанной локали (второй параметр) и локали по умолчанию (задается настройками ОС или JVM) генерируется список возможных имен ресурса. Причем, указанная локаль имеет более высокий приоритет, чем локаль по умолчанию. Если обозначить составляющие указанной локали (язык, страна, вариант) как 1, а локали по умолчанию - 2, то список примет следующий вид:

Поделиться:
Популярные книги

Я царь. Книга XXVIII

Дрейк Сириус
28. Дорогой барон!
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Я царь. Книга XXVIII

Студиозус

Шмаков Алексей Семенович
3. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус

Изгои

Владимиров Денис
5. Глэрд
Фантастика:
фэнтези
боевая фантастика
5.00
рейтинг книги
Изгои

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Эволюционер из трущоб. Том 9

Панарин Антон
9. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 9

Третий Генерал: Том IV

Зот Бакалавр
3. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Третий Генерал: Том IV

Старая школа рул

Ромов Дмитрий
1. Второгодка
Фантастика:
альтернативная история
6.00
рейтинг книги
Старая школа рул

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

Император Пограничья 5

Астахов Евгений Евгеньевич
5. Император Пограничья
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 5

Имперец. Том 5

Романов Михаил Яковлевич
4. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
6.00
рейтинг книги
Имперец. Том 5

Моров. Том 1 и Том 2

Кощеев Владимир
1. Моров
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Моров. Том 1 и Том 2

Идеальный мир для Лекаря 10

Сапфир Олег
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 10

Моя простая курортная жизнь 4

Блум М.
4. Моя простая курортная жизнь
Любовные романы:
эро литература
5.00
рейтинг книги
Моя простая курортная жизнь 4

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство