ПредишенСледващото

компилаторът ще направи нещо като това:

String S = нов StringBuffer (). Добавяне ( "Тази"). Добавяне ( "а")

обект от клас StringBuffer или StringBuilder клас е създаден. то "Това" ще се прибавят последователно линия от добавяне (). "Едно". "String". и получената обект StringBuffer или StringBuilder класа ще се дава на низ тип meto-

Спомнете си, че героите в низове се съхраняват в Unicode, където всеки символ заема два байта. Видът на всеки знак - знак.

Преди да започнете работа с низ трябва да се създаде като обект на всеки клас. Това може да стане по различни начини.

Как да създадете низ

Най-лесният начин за създаване на низ - е да се организира String позоваване на низ-константа:

String s1 = "Това е низ.";

String s2 = "Този дълъг низ от тип String," + ", написана в две линии на изходния код";

Да не забравяме и за разликата между празен низ String ите = "". не съдържа никакви характер и празна справка String S = нула. не сочи към всяка една линия, а не обект.

Най-правилния начин, за да се създаде обект от гледна точка на ООП - е да се обади неговото конструктор в експлоатация ново. Класът String ви предоставя повече от една дузина дизайнери:

 String () - създава обект с празен низ;

 String (ул String) - конструктор копие: от един обект, създаден от неговата

точно копие, така че проектантът се използва рядко;

 String (StringBuffer ул) - предаване StringBuffer клас обект;

 String (StringBuilder ул) - предаване StringBuilder клас обект;

 String (байт [] byteArray) - обектът е създаден от масив от байтове byteArray;

 String (овъгляване [] charArray) - обектът е създаден от масив charArray Unicode символи;

 String (байт [] byteArray, Int офсет, брой Int) - обектът е създаден от част масиви

ва byteArray байта. започне с индекса компенсират и брой байтове, включващ;

 String (овъгляване [] charArray, Int офсет, брой Int) - същото, но се състои от масив Символът

 String (междинно съединение [] intArray, Int офсет, Int брой) - същото, но включва набор от символи

Unicode, съхранявани в масив от тип, който ви позволява да използвате Unicode символи заемат повече от два байта;

 String (байт [] byteArray, String кодиране) - символи записани в масив от байтове,

разположен в Unicode базирани кодиране линия кодиране;

 String (байт [] byteArray, Int офсет, брой ср, String кодиране) - е същата, но

само част от масив;

 String (байт [] byteArray, Кодова кодировка) - символи записани в масив от байтове,

Unicode-, определен в съответствие с кодиране на даден обект символен набор;

 String (байт [] byteArray, Int офсет, брой ср, Кодова кодировка) - е същата, но

само част от масива.

В грешна работа компенсира индекси. брои или кодиране кодиране изключение се случи.

Комплекти с помощта byteArray масив от байтове. за цел да създаде по Unicode низ от масив от байтове ASCII-кодирания. Тази ситуация възниква, когато четете ASCII-файлове, извличане на информация от база данни или при предаването на информация по мрежата.

В най-простия случай, компилаторът за двубайтовите Unicode символи, за да добавите към всеки байт старши нулев байт. Вземете гама '\ u0000' - '\ u00FF "Unicode кодиране, съответстваща кодове Latin1. Текстовете написани на кирилица се показват правилно.

Ако компютърът се направи локална инсталация, както казват в жаргона на "инсталира локално" (локал) (в MS Windows го изпълнява помощната Regional Options (Регионални настройки) в контролния панел (Control Panel)), компилаторът ще прочетете тези настройки, създаване на Unicode символи, съответстващи на страницата местен код. В Russified версия на MS Windows обикновено е код на страницата CP1251.

Ако оригиналният масив с текста на ASCII-кирилица е било кодирано CP1251, низ Java ще бъде създаден правилно. Кирилица попадат в техния обхват '\ u0400' - '\ u04FF "Unicode кодиране.

Но кирилица има най-малко четири кодировки:

 в MS-DOS се използва CP866 кодиране;

 обикновено се използва в UNIX кодираща KOI8-R;

 на компютри Apple Macintosh, използвани за кодиране MacCyrillic;

 има и международен кодиране на кирилица ISO8859-5.

Например, байт 11100011 (0xE3 - в шестнадесетичен) в CP1251 кодиране е вероятно писмо G. кодиран в CP866 - буквата ш. кодиран KOI8- R - писмо Ts в ISO8859-5 - писмо от. в MacCyrillic - писмо грама.

Ако оригиналният кирилица ASCII-текст е бил в един от тези знаци, както и на местната кодиране - CP1251 с Unicode характер Java низ да се разминават с кирилицата.

В тези случаи от последните четири конструкторите се използват в който кодирането на параметър или набор от знаци, която определя набор от знаци за използване на дизайнера да създаде линията.

System.out.print (MSG + "cp1251:"); System.out.write (byteCp1251); System.out.println (); System.out.print (MSG + "Cp866."); System.out.write (byteCp866); System.out.println (); System.out.print (MSG + "KOI8-R"); System.out.write (byteKOI8R);

> Улов (Изключение д)

System.out.println (MSG + "знак масив." + S1); System.out.println (MSG + "по подразбиране кодиране:" + S2); System.out.println (съобщ + "низ постоянна." + S3); System.out.println ();

System.out.println (MSG + "cp1251 -> cp1251:" + winLikeWin); System.out.println (MSG + "cp1251 -> Cp866." + WinLikeDOS); System.out.println (MSG + "cp1251 -> KOI8-R:" + winLikeUNIX); System.out.println (MSG + "Cp866 -> cp1251:" + dosLikeWin); System.out.println (MSG + "Cp866 -> Cp866." + DosLikeDOS); System.out.println (MSG + "Cp866 -> KOI8-R:" + dosLikeUNIX); System.out.println (MSG + "KOI8-R -> cp1251:" + unixLikeWin); System.out.println (MSG + "KOI8-R -> Cp866." + UnixLikeDOS); System.out.println (MSG + "KOI8-R -> KOI8-R:" + unixLikeUNIX);

Първите три линии на конзолата без конвертиране байтове масиви са показани в Unicode

byteCp1251. byteCp866 и byteKOI8R. Това се постига чрез запис () на FilterOutputStream пакет клас java.io.

Следващите три линии, получени Java конзола линия, получена от характера масив в []. масиви и низови константи byteCp866.

Допълнителни редове съдържат конвертираните конзола масиви.

Можете да видите, че конзолата се показва правилно само масив в CP866 кодиране, записана в низ посредством таблицата за CP1251 код. Какво има? Ето приноса им към русификацията на проблема прави поток заключение символ на конзолата или във файл.

Както е посочено в глава 1 в командване на конзолата прозорец Prompt операционна текст MS Windows е кодиран в CP866 системи.

С цел да се побере това, думите "," България "в" превръща в масив от байтове, съдържащ героите в CP866 кодиране, и след това се прехвърлят низ съобщ.

В предпоследната линия на фиг. 5.1 направено пренасочване програма codes.txt файл. В MS Windows текстов изход към файл се появява в cp1251 за кодиране. Фиг. 5.2 показва съдържанието на файла в Notepad codes.txt прозорец (Notepad).

Фиг. 5.2. Заключение на кирилица низ във файл

Както можете да видите, кирилица изглежда доста по-различно. Правилните знаци Unicode кирилица, получен чрез използване на една и съща кодова таблица, в която оригиналния масив от байтове писмено.

Русификация въпроси ще обсъдят в глави 9 и 24. В същото време, имайте предвид, че при създаването на поредица от байт масив е по-добре да се уточни и същ набор от символи на кирилица, която се записва в масива. След това можете да получите Java низ с правилните Unicode символи.

В получаването на един и същ низ към конзолния прозорец, в даден файл или предава по мрежата е по-добре да я превърне в низ Java с Unicode символи на правилата за извод в правилното място.

Друг начин да се създаде низ - е да се използват два статични методи:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!