Поиск в символьных строках Java

Поиск в символьных строках Java

В классе String предоставляются два метода для поиска в символьной строке определенного символа или подстроки.

  • Метод indexOf() - находит первое вхождение символа или подстроки
  • Метод lastIndexOf() - находит последнее вхождение символа или подстроки

Оба эти метода перегружаются несколькими способами и по-разному. Но в любом случае они возвращают позицию в строке(индекс), где найден символ или подстрока, а при неудачном исходе поиска возвращает значение -1.

Для поиска первого вхождение символа в строке служит следующая форма:

int indexOf(char )

А для поиска последнего вхождения символа в строке служит такая форма:

int lastIndexOf(char )

где параметр символ обозначает искомый символ в строке.

И наконец, для поиска первого или последнего вхождения подстроки служит приведенная ниже форма, где параметр строка обозначает искомую подстроку.

int indexOf(String )
int lastIndexOf(String )

Воспользовавшись следующими формами рассматриваемых здесь методов, можно указать начальную позицию для поиска символа или подстроки в исходной строке:

int indexOf(int , int _)
int lastIndexOf(int , int _)

int indexOf(String , int _)
int lastIndexOf(String , int _)

где параметр начальный_индекс задает начальную позицию для поиска в строке. В методе indexOf() поиск начинается от позиции начальный_индекс и до конца строки, а в методе lastIndexOf() - от позиции начальный_индекс и до нуля.

Поиск в символьных строках JavaВ следующем примере программы демонстрируется применение различных форм методов индексирования для поиска символов и подстрок в исходной строке:

//    
//  indexOf()  lastIndexOf()
public class IndexOfDemo {

    public static void main(String[] args) {
        String s = "Now it`s time to learn Java language on Pro-Java.ru.
                            Remember, learn is power!";
        System.out.println(s);
        System.out.println("indexOf(t) = " + s.indexOf('t'));
        System.out.println("lastIndexOf(t) = " + s.lastIndexOf('t'));
        System.out.println("indexOf(learn) = " + s.indexOf("learn"));
        System.out.println("lastIndexOf(learn) = " + s.lastIndexOf("learn"));
        System.out.println("indexOf(t, 10) = " + s.indexOf('t', 10));
        System.out.println("lastIndexOf(t, 40) = " + s.lastIndexOf('t', 40));
        System.out.println("indexOf(learn, 50) = " + s.indexOf("learn", 50));
    }

}

Ниже приведен результат, выводимый данной программой:

Now it`s time to learn Java language on Pro-Java.ru. Remember, learn is power!
indexOf(t) = 5
lastIndexOf(t) = 14
indexOf(learn) = 17
lastIndexOf(learn) = 63
indexOf(t, 10) = 14
lastIndexOf(t, 40) = 14
indexOf(learn, 50) = 63

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *