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

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

Жанры

Программирование на 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, то список примет следующий вид:

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

Лекарь Империи 10

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

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Перекресток судеб

Щепетнов Евгений Владимирович
6. Нед
Фантастика:
фэнтези
8.84
рейтинг книги
Перекресток судеб

Газлайтер. Том 20

Володин Григорий Григорьевич
20. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 20

Охотник на демонов

Шелег Дмитрий Витальевич
2. Живой лёд
Фантастика:
боевая фантастика
5.83
рейтинг книги
Охотник на демонов

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

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

Эпоха Опустошителя. Том III

Павлов Вел
3. Вечное Ристалище
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эпоха Опустошителя. Том III

Законы рода

Мельник Андрей
1. Граф Берестьев
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Законы рода

Боярышня Евдокия

Меллер Юлия Викторовна
3. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Евдокия

Мастер 8

Чащин Валерий
8. Мастер
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мастер 8

Аспирант

Поселягин Владимир Геннадьевич
3. Рунный маг
Фантастика:
боевая фантастика
4.50
рейтинг книги
Аспирант

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Гранит науки. Том 2

Зот Бакалавр
2. Героями не становятся, ими умирают
Фантастика:
фэнтези
5.00
рейтинг книги
Гранит науки. Том 2