Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JavaΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 78

Автор Н.А. Вязовик

ΠœΠ΅Ρ‚ΠΎΠ΄ save(OutputStream inStream,String header) сохраняСт Π½Π°Π±ΠΎΡ€ свойств Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π² Π²ΠΈΠ΄Π΅, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ для Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° load. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ΡΡ слуТСбными, ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π² Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΊ Π²ΠΈΠ΄Ρƒ \uxxxx. ΠŸΡ€ΠΈ сохранСнии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ISO 8859-1. Если ΡƒΠΊΠ°Π·Π°Π½ header, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² Π²ΠΈΠ΄Π΅ коммСнтария (Ρ‚.Π΅. с символом # Π² Π½Π°Ρ‡Π°Π»Π΅), Π΄Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ врСмя ΠΈ Π΄Π°Ρ‚Π° сохранСния свойств Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅.

Π’ классС Properties ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π΅Ρ‰Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ list(PrintWriter out), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ save. ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ лишь Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСльзя. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, строки ΡƒΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для сохранСния Properties Π½Π΅ годится.


public class Test {

public Test() {


}

public static void main(String[] args) {

Test test = new Test();

Properties props = new Properties();

StringWriter sw = new StringWriter();

sw.write("Key1 = Value1 \n");

sw.write(" Key2 : Value2 \r\n");

sw.write(" Key3 Value3 \n ");

InputStream is = new ByteArrayInputStream(sw.toString().getBytes());

try {

props.load(is);

}

catch (IOException ex) {

ex.printStackTrace();

}

props.list(System.out);

props.setProperty("Key1","Modified Value1");

props.setProperty("Key4","Added Value4");

props.list(System.out);

}

}


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 14.22.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚:


-- listing properties --

Key3=Value3

Key2=Value2

Key1=Value1

-- listing properties --

Key4=Added Value4

Key3=Value3

Key2=Value2

Key1=Modified Value1

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 14.23.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Comparator

Π’ коллСкциях ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сортировки ΠΈΠ»ΠΈ сравнСния Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс Comparator. Π­Ρ‚ΠΎΡ‚ интСрфСйс опрСдСляСт СдинствСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ compare(Object obj1,Object obj2), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° основании ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сравниваСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄ compare Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ:


-1 Ссли obj1 < obj2

0 Ссли obj1 = obj2

1 Ссли obj1 > obj2

Класс Arrays

БтатичСский класс Arrays обСспСчиваСт Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ массивами, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ поиск, сортировка, сравнСниС. Π’ Arrays Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ public List aList(a[] arr), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, основанный Π½Π° массивС. ИзмСнСния Π² List ΠΌΠΎΠΆΠ½ΠΎ внСсти, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π΄Π°Π½Π½Ρ‹Π΅ Π² массивС.

public class Test {

public Test() {


}

public static void main(String[] args) {

Test test = new Test();

String[] arr = {"String 1","String 4",

"String 2","String 3"

};

test.dumpArray(arr);

Arrays.sort(arr);

test.dumpArray(arr);

int ind = Arrays.binarySearch(arr, "String 4");

System.out.println(

"\nIndex of \"String 4\" = " + ind);

}

void dumpArray(String arr[]) {

System.out.println();

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

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

}

}

}


Класс StringTokenizer

Π­Ρ‚ΠΎΡ‚ класс ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·Π±ΠΎΡ€Π° строки ΠΏΠΎ лСксСмам ( tokens ). Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ, пСрСдаСтся Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° конструктору StringTokenizer(String str). ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π΅Ρ‰Π΅ Π΄Π²Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… конструктора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ лСксСм StringTokenizer(String str, String delim) ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° раздСлитСля лСксСм StringTokenizer(String str, String delim, Boolean returnDelims).

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ лСксСм ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ слуТит ΠΏΡ€ΠΎΠ±Π΅Π».

public class Test {

public Test() {


}

public static void main(String[] args) {

Test test = new Test();

String toParse =

"word1;word2;word3;word4";

StringTokenizer st =

new StringTokenizer(toParse,";");

while(st.hasMoreTokens()) {

System.out.println(st.nextToken());

}

}

}


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚:


word1

word2

word3

word4

Класс BitSet

Класс BitSet ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π±ΠΈΡ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ этой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, установлСн Π±ΠΈΡ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ BitSet ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ содСрТимым Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ BitSet с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ AND, OR ΠΈΠ»ΠΈ XOR (ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ»ΠΈ).

BitSet ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство установлСнных Π±ΠΈΡ‚ΠΎΠ²), ΠΌΠΎΠΆΠ΅Ρ‚ динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС Π±ΠΈΡ‚Ρ‹ Π² Π½Π°Π±ΠΎΡ€Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² 0 (false). Установка ΠΈ очистка Π±ΠΈΡ‚ΠΎΠ² Π² BitSet осущСствляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ set(int index) ΠΈ clear(int index).

ΠœΠ΅Ρ‚ΠΎΠ΄ int length() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ "логичСский" Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π°Π±ΠΎΡ€Π° Π±ΠΈΡ‚ΠΎΠ², int size() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ BitSet.

public class Test {

public Test() {


}

public static void main(String[] args) {

Test test = new Test();

BitSet bs1 = new BitSet();

BitSet bs2 = new BitSet();

bs1.set(0);

bs1.set(2);

bs1.set(4);

System.out.println("Length = " + bs1.length()+" size = "+bs1.size());

System.out.println(bs1);

bs2.set(1);

bs2.set(2);

bs1.and(bs2);

System.out.println(bs1);

}

}


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚:


Length = 5 size = 64

{0, 2, 4}


{2}


ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° консоль, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ прСдставлСния BitSet ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ значСния Ρ‚ΠΈΠΏΠ° long.

Класс Random

Класс Random ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ псСвдослучайных чисСл. Π’ качСствС "Π·Π΅Ρ€Π½Π°" примСняСтся 48-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ число. Если для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Random Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ число, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° Ρ‚Π° ΠΆΠ΅ самая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ псСвдослучайных чисСл.

Π’ классС 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 .