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

       

Как найти подстроку


Поиск всегда ведется с учетом регистра букв.

Первое вхождение подстроки

sub

в данную строку

this

отыскивает метод

indexof

(String sub).

Он возвращает индекс первого символа первого вхождения подстроки

sub

в строку или -1, если подстрока

sub

не входит в строку



this

. Например,

" Раскраска

".indexof ("рас")

даст в результате 4.

Если вы хотите начать поиск не с начала строки, ас какого-то индекса

ind

, используйте метод

indexOf (String sub, int ind).

если  i

nd < 0

, то поиск

идет с начала строки, если

ind

больше .длины строки, то символ не ищется, т. е. возвращается -1.

Последнее вхождение подстроки

sub

в данную строку

this

можно отыскать методом

lastindexof

(

string

sub

), возвращающим индекс первого символа последнего вхождения подстроки

sub

в строку

this

или (-1), если подстрока

sub

не входит в строку

this

.

Последнее вхождение подстроки

sub

не во всю строку

this

, а только в ее начало до индекса

ind

можно отыскать методом l

astIndexof(String stf, int ind

). Если

ind

больше длины строки, то .поиск идет от конца строки, если

ind < о

, то возвращается -1.

Для того чтобы проверить, не начинается ли данная строка

this

с подстроки

sub

, используйте логический метод

startsWith(string

sub)

, возвращающий

true

, если данная строка

this

начинается с подстроки

sub

, или совпадает с ней, или подстрока

sub

пуста. 

Можно проверить и появление подстроки

sub

в данной строке

this

, начиная с некоторого индекса

ind

логическим методом s

tartsWith(String sub),int ind).

Если индекс

ind

отрицателен или больше длины строки,

возвращается

 

false

Для того чтобы проверить, не заканчивается ли данная строка

this

подстрокой

sub

, используйте логический метод

endsWitht(String sub)

. Учтите, что он возвращает

true

, если подстрока

sub

совпадает со всей строкой или подстрока

sub

пуста.

Например,

if (fileName.endsWith(". Java"))

отследит имена файлов с исходными текстами Java.

Перечисленные выше методы создают исключительную ситуацию, если

sub == null.

Если вы хотите осуществить поиск, не учитывающий регистр букв, измените предварительно регистр всех символов строки.



Содержание раздела