Иллюстрированный самоучитель по Java

Как выбрать символы из строки

Выбрать символ с индексом ind (индекс первого символа равен нулю) можно методом charAt(int ind). Если индекс ind отрицателен или не меньше чем длина строки, возникает исключительная ситуация. Например, после определения:

char ch = s.charAt(3);

…переменная ch будет иметь значение 't'.

Все символы строки в виде массива символов можно получить методом toCharArray(), возвращающим массив символов.

Если же надо включить в массив символов dst, начиная с индекса ind массива подстроку от индекса begin включительно до индекса end исключительно, то используйте метод getChars(int begin, int end, char[] dst, int ind) типа void.

В массив будет записано end – begin символов, которые займут элементы массива, начиная с индекса ind до индекса ind + (end -begin) -1.

Этот метод создает исключительную ситуацию в следующих случаях:

  • ссылка dst = null;
  • индекс begin отрицателен;
  • индекс begin больше индекса end;
  • индекс end больше длины строки;
  • индекс ind отрицателен;
  • ind + (end – begin) > dst.length.

Например, после выполнения:

char[] ch = ('К', 'о', 'р', 'о', 'л', 'ь', ' ', 'л', 'е', 'т', 'а'};
"Пароль легко найти".getChars(2, 8, ch, 2);

…результат будет таков:

ch = ('К', 'о', 'р', 'о', 'л', 'ь ', ' ', 'л', 'е', 'т', 'а'};

Если надо получить массив байтов, содержащий все символы строки в байтовой кодировке ASCII, то используйте метод getBytes().

Этот метод при переводе символов из Unicode в ASCII использует локальную кодовую таблицу.

Если же надо получить массив байтов не в локальной кодировке, а в какой-то другой, используйте метод getBytes(String encoding).

Так сделано в листинге 5.1 при создании объекта msg. Строка "\'Тоссия в\"" перекодировалась в массив СР866-байтов для правильного вывода кириллицы в консольное окно Command Prompt операционной системы Windows 2000.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.