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

0

Класс String служит для представления неизменяемых строк и предлагает методы их обработки. Строки могут быть созданы неявно посредством задания литералов (таких как "GroBe") либо при использовании операторов + или += для сцепления содержимого двух объектов String с образованием новод строки.

Допускается и явное создание объектов String с помощью оператора new.

Класс String поддерживает несколько простых конструкторов (остальные мы рассмотрим в следующих разделах).

Public String()

Создает новый объект String со значением “” – пустую строку.

public String(String value)

Конструктор копии – создает новый объект String, служащий копией объекта-параметра value. Поскольку объекты String обладают свойством устойчивости, применяется редко.

К наиболее употребительным методам класса String можно отнести length и charAt. Метод length возвращает целочисленное значение, равное количеству Символов в строке, а charAt – значение типа char, отвечающее символу строки, который расположен на указанной позиции (в этом смысле строки схожи с массивами символов). Ниже приведен пример цикла, в котором подсчитывается Частота появления каждого символа в пределах заданной строки:

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

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

Обратите внимание, что 1ength – это метод класса String, а массивы обладают одноименным полем (новички часто их путают).

При использовании большинства методов класса String задание значения позиции символа в строке, меньшего нуля или превышающего величину length – 1, приводит К выбрасыванию исключения типа IndexoutOfBoundsException; в Некоторых реализациях поддерживается производный тип исключения StringIndexOutOfBoundsException, который предусматривает передачу Конструктору неверного значения, включаемого затем в подробное сообщение об ошибке. (Исключение типа IndexoutOfBoundsException генерируется также в случае Попытки доступа к элементу массива с заданием неверного значения индекса.)

В составе класса String имеется ряд простых методов поиска в строке заданных символов или подстрок. Следующий пример демонстрирует, каким образом можно подсчитать количество символов, разделяющих первый и последний экземпляры заданного символа ch в указанной строке str:

public static int countBetween(String str, char ch) {

int begpos = str.indexOf(ch);

           if (begpos < О) // Символа в строке нет

return -1;

int endpos = str.lastIndexOf(ch);

return endpos – begpos – 1;

}

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

В таблице, приведенной ниже, перечислены перегруженные формы метода 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

 

Метод                              Возвращает значение позиции…

 

lаstIndехоf(stгing str)                 последнего экземпляра подстроки str

lastIndexOf(string str, int start)             последнего экземпляра подстроки str, начиная с позиции, не большей start

 

 

 

Упражнение 9.1. Создайте метод, который подсчитывает количество экземпляров заданного символа в указанной строке.

Упражнение 9.2. Создайте метод, который подсчитывает количество экземпляров заданной подстроки в указанной строке.

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

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