Как создать строку. Сцепление строк.
Рис. 5.2. Вывод кириллической строки в файл
Как видите, кириллица выглядит совсем по-другому. Правильные символы Unicode кириллицы получаются, если использовать ту же кодовую таблицу, в которой записан исходный массив байтов.
Вопросы русификации мы еще будем обсуждать в главах 9 и 18, а пока заметьте, что при создании строки из массива байтов лучше указывать ту же самую кириллическую кодировку, в которой записан массив. Тогда вы получите строку Java с правильными символами Unicode.
При выводе же строки на консоль, в окно, в файл или при передаче по сети лучше преобразовать строку Java с символами Unicode по правилам вывода в нужное место.
Еще один способ создать строку – это использовать два статических метода:
copyValueOf(chart] charArray) и copyValueOf(char[] charArray, int offset, int length).
Они создают строку по заданному массиву символов и возвращают ее в качестве результата своей работы. Например, после выполнения следующего фрагмента программы:
chart] с = ('С', 'и', 'м', 'в', 'о', 'л', 'ь', 'н', 'ы', 'й'}; String s1 = String.copyValueOf(с); String s2 = String.copyValueOf(с, 3, 7);
…получим в объекте s1 строку " Символьный ", а в объекте s2 – строку " вольный ".
Сцепление строк
Со строками можно производить операцию сцепления строк (concatenation), обозначаемую знаком плюс +. Эта операция создает новую строку, просто составленную из состыкованных первой и второй строк, как показано в начале данной главы. Ее можно применять и к константам, и к переменным. Например:
String attention = "Внимание: "; String s = attention + "неизвестный символ"; Вторая операция – присваивание += – применяется к переменным в левой части: attention += s;
Поскольку операция + перегружена со сложения чисел на сцепление строк, встает вопрос о приоритете этих операций. У сцепления строк приоритет выше, чем у сложения, поэтому, записав "2" + 2 + 2, получим строку " 222 ". Но, записав 2 + 2 + "2", получим строку "42", поскольку действия выполняются слева направо. Если же запишем "2" + (2 + 2), то получим "24".