Как да се създаде линия от програмиране, уроци и примери

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

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

String s2 = "Това е дълга линия," +

"Записите са реализирани в два реда код";

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

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

  • низ () - създава обект с празен низ;
  • низ (String ул) - от един обект създава друг, така че рядко се използва на дизайнера;
  • низ (StringBuf FER ул) - трансформира клас обект COP-Ia BufferString;
  • низ (байт [] byteArray) - обектът е създаден от масив от байтове byteArray;
  • String (овъгляване [] charArray) - обектът е създаден от масив charArray Unicode символи;
  • String (байт [] byteArray, Int офсет, брой Int) - обектът е създаден от част от масив byteArray байта изходните с индекса компенсират и брой байтове, включващ;
  • String (овъгляване [] charArray, Int офсет, брой Int) - същото, но включва множество Unicode символи;
  • String (байт [] byteArray, String кодиране) - символи записани в масив от байтове, посочени в Unicode линия с кодиране на кодиране;
  • String (байт [] byteArray, Int офсет, брой ср, String кодиране) - е същото, но само за част от масива.

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

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

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

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

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

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

  • В MS-DOS кодиране се прилага SR866.
  • В UNIX често се използва кодираща KOI8-R.
  • На компютри Apple Macintosh използва кодиране MacCyrillic.
  • Има и международен кирилица кодиране ISO8859-5;

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

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

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

Обява 5.1 показва различните случаи на текст запис на кирилица. Има три масиви bayto'v, съдържащи думата "България" в три кодировки.

  • byteCP1251 масив съдържа думата "България" кодиран SR1251.
  • byteSP866 масив съдържа думата "България" в SR866 кодиране.
  • ByteKOI8R масив съдържа думата "България" в кодиране KOI8-R.

Всеки набор от три линии са генерирани с помощта на три кодови таблици.

Обявата 5.1. Създаване на реда на кирилица

публично статично невалидни основни (String [] опцията)

String winLikeWin = нула, winLikeDOS = нула, winLikeUNIX = нула;

String dosLikeWin = нула, dosLikeDOS = нула, dosLikeUNIX = нула;

String unixLikeWin = нула, unixLikeDOS = нула, unixLikeUNIX = нула;

String съоб = нула;

(Байт) 0xD0, (байт) 0xEE, (байт) 0xFl,

(Байт) 0xFl, (байт) 0xES, (байт) 0xFF

(Байт) 0x90, (байт) 0xAE, (байт) 0xE1,

System.out.println (MSG + "по подразбиране кодиране." + S2);

System.out.println (съобщ + "низ постоянна." + S3);

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 -> Cpl251:" + unixLikeWin);

System.out.println (MSG + "KOI8-R -> Cp866." + UnixLikeDOS);

System.out.println (MSG + "KOI8-R -> KOI8-R:" + unixLikeUNIX);

Първият байт масиви byteCP1251 конзолата показва три линии. byteCP866 byteKOI8R и без превръщане в Unicode. Това се постига чрез запис () на FilterOutputStream пакет клас java.io.

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

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

Можете да видите, че конзолата се показва правилно само набор от кодиране SR866, записана в съответствие с SR1251 кодова таблица.

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

Както бе споменато в Глава 1, в командване на конзолата прозорец Prompt операционна система MS Windows показва кодиране на текста SR866 на.

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

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

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

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

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

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

Те създават една ивица в определен характер масив и го връща като резултат от тяхната работа. Например, след изпълнение на следната програма фрагмент

получаване на обект S1 е "Герой" и S2 на обекта - низ "свободна".