В классе String предоставляются два метода для поиска в символьной строке определенного символа или подстроки.
- Метод indexOf() — находит первое вхождение символа или подстроки
- Метод lastIndexOf() — находит последнее вхождение символа или подстроки
Оба эти метода перегружаются несколькими способами и по-разному. Но в любом случае они возвращают позицию в строке(индекс), где найден символ или подстрока, а при неудачном исходе поиска возвращает значение -1.
Для поиска первого вхождение символа в строке служит следующая форма:
1 |
int indexOf(char символ) |
А для поиска последнего вхождения символа в строке служит такая форма:
1 |
int lastIndexOf(char символ) |
где параметр символ обозначает искомый символ в строке.
И наконец, для поиска первого или последнего вхождения подстроки служит приведенная ниже форма, где параметр строка обозначает искомую подстроку.
1 2 |
int indexOf(String строка) int lastIndexOf(String строка) |
Воспользовавшись следующими формами рассматриваемых здесь методов, можно указать начальную позицию для поиска символа или подстроки в исходной строке:
1 2 3 4 5 |
int indexOf(int символ, int начальный_индекс) int lastIndexOf(int символ, int начальный_индекс) int indexOf(String строка, int начальный_индекс) int lastIndexOf(String строка, int начальный_индекс) |
где параметр начальный_индекс задает начальную позицию для поиска в строке. В методе indexOf() поиск начинается от позиции начальный_индекс и до конца строки, а в методе lastIndexOf() — от позиции начальный_индекс и до нуля.
В следующем примере программы демонстрируется применение различных форм методов индексирования для поиска символов и подстрок в исходной строке:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Продемонстрировать применение разных форм // методов 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)); } } |
Ниже приведен результат, выводимый данной программой:
1 2 3 4 5 6 7 8 |
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 |