Главная » Java » Основные операции со строками

0

Класс String позволяет работать со строками, доступными только для чтения, и поддерживает операции с ними. Строки могут создаваться неявным образом при помощи заключенной в кавычки последовательности символов (например, “GrцЯe”) или за счет выполнения оператора + или += над двумя объектами String.

Кроме того, допускается и явное построение объектов String оператором new. В классе

String предусмотрены следующие конструкторы:

public String()

Конструирует новый объект String, значение которого равно “”. public String(String value)

Конструирует новый объект String, являющийся копией заданного.

При работе с объектами String используются два базовых метода — length и charAt. Метод length возвращает количество символов в строке, а метод charAt — символ в заданной позиции. Приведенный ниже цикл подсчитывает количество вхождений каждого из символов в строку:

for (int i = 0; i << str.length(); i++)

counts[str.charAt(i)]++;

При попытке обратиться в методе charAt или любом другом методе String к позиции, номер которой отрицателен либо превышает length()-1, возбуждается исключение IndexOutOfBoundsException. Подобные неверные обращения обычно обусловлены наличием ошибок в программе.

Кроме того, имеются простые методы для поиска в строке первого или последнего вхождения конкретного символа или подстроки. Следующий метод возвращает количество символов между первым и последним вхождением заданного символа в строке:

static int countBetween(String str, char ch) {

int begPos = str.indexOf(ch);

if (begPos << 0)      // не входит

return -1;

int endPos = str.lastIndexOf(ch);

return endPos – begPos – 1;

}

Данный метод находит первую и последнюю позицию символа ch в строке str. Если символ входит в строку менее двух раз, метод возвращает –1. Разность между номерами позиций превышает на единицу количество символов между ними (количество символов между позициями 2 и 3 равно 0).

Существует несколько перегруженных вариантов метода indexOf для поиска в прямом направлении и метода lastIndexOf — для поиска в обратном направлении. Каждый из методов возвращает номер найденной позиции или –1, если поиск оказался безуспешным:

Метод

Возвращаемое значение

indexOf(char ch)

первая позиция ch

indexOf(char ch, int start)

первая позиция ch  start

indexOf(String str)

первая позиция str

indexOf(String str, int start)

первая позиция str  start

lastIndexOf(char ch)

последняя позиция ch

lastIndexOf(char ch, int start)

последняя позиция ch start

lastIndexOf(String  str)

последняя позиция str

lastIndexOf(String  str, int start)

последняя позиция str start

Упражнение 8.1

Напишите метод, который подсчитывает количество вхождений данного символа в строку.

Упражнение 8.2

Напишите метод, который подсчитывает количество вхождений некоторой подстроки в данную строку.

Источник: Арнольд К., Гослинг Д. – Язык программирования Java (1997)

По теме:

  • Комментарии