JavaRush/Курсы/Java Multithreading/Поиск, получение, удаление подстроки в String

Поиск, получение, удаление подстроки в String

Открыта

— Смотри, что еще можно делать с подстроками:

8) Как найти нужную подстроку в строке?

Методы indexOf, lastIndexOf позволяют искать строки в строках. Есть 4 вида таких методов:

Метод indexOf ищет в нашей строке указанную строку. Он может искать ее с начала строки или начиная с какого-то номера (второй метод). Если строка найдена – метод возвращает номер ее первого символа, если не найдена — возвращает -1

Метод(ы) Пример(ы)
int indexOf(String str)
String s = "Good news everyone!";
int index = s.indexOf("ne");
Результат:

index == 5
int indexOf(String str, int from)
String s = "Good news everyone!";
int index = s.indexOf("ne", 7);
Результат:

index == 16

Метод lastIndexOf ищет указанную строку в нашей строке с конца! Он может искать ее с самого конца строки или начиная с какого-то номера (второй метод). Если строка найдена – метод возвращает номер ее первого символа, если не найдена — возвращает -1.

Метод(ы) Пример(ы)
int lastIndexOf(String str)
String s = "Good news everyone!";
int index = s.lastIndexOf("ne");
Результат:

index == 16
int lastIndexOf(String str, int from)
String s = "Good news everyone!";
int index = s.lastIndexOf("ne", 15);
Результат:

index == 5

9) Как заменить часть строки на другую?

Для этого есть три метода.

Метод replace заменяет все вхождения определенного символа на другой.

Метод replaceAll заменяет все вхождения одной подстроки на другую.

Метод replaceFirst заменяет первое вхождение переданной подстроки на заданную подстроку.

Метод(ы) Пример(ы)
String replace(char oldChar, char newChar)
String s = "Good news everyone!";
String s2 = s.replace ('o', 'a');
Результат:

s2 == "Gaad news everyane!";
String replaceAll(String regex, String replacement)
String s = "Good news everyone!";
String s2 = s.replaceAll("ne", "_");
Результат:

s2 == "Good _ws everyo_!";
String replaceFirst(String regex, String replacement)
String s = "Good news everyone!";
String s2 = s.replaceFirst("ne", "_");
Результат:

s2 == "Good _ws everyone!";

Но тут нужно быть аккуратным. В двух последних методах (replaceAll&replaceFirst) в качестве строки, которую мы ищем, передается не просто строка, а регулярное выражение. Но об этом я расскажу позднее.

Комментарии (76)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
TimJohnzz
Уровень 23
около 7 часов назад
🐭
Euraks Backend Developer
позавчера, 17:13
🦔
No Name
Уровень 22
21 ноября 2024, 15:13
+ лекция в копилке
Private Joker
Уровень 36
19 июня 2024, 17:24
Ну что же, спустя 25 уровней, я наконец-то познал всю суть этих методов. Хорошая лекция.
Dr.Alexcemen9Врач в Поликлиника в деревн
8 августа 2024, 13:04
охереть позитивный комент ля, лови лайк👍
Dr.Alexcemen9Врач в Поликлиника в деревн
8 августа 2024, 13:04
но только один ибо ты мне не нравишься
Dmitry
Уровень 34
19 августа 2024, 07:32
+ 😀
Максим Li Backend Developer
18 мая 2024, 18:16
18.05.2024
Ислам
Уровень 33
1 марта 2024, 21:32
Nice
Dmitry Shaburov
Уровень 33
29 ноября 2023, 01:59
29,11,2023
ZюMLik
Уровень 51
8 марта 2023, 02:52
хм, лекции для тех кто пропустил java syntax?
Anonymous #2988619
Уровень 39
14 апреля 2022, 09:44
Метод replace(old char, new char) работает ведь и со строками... В чем тогда его принципиальное отличие от replaceAll(String regex, String replacement)? Только в том, что обычный replace не работает с регулярными выражениями?
Ada
Уровень 1
10 июля 2022, 08:58
replace заменяет только один символ (то есть заменить все символы "а" на "о", к примеру. replaceAll заменяет набор символов (заменить все "пр" на "плов")
Иван
Уровень 41
29 декабря 2022, 14:55
replace() может заменять не только символы поштучно, получается, что отличия replace() и replaceAll() в том, что в replaceAll() первый аргумент это регулярное выражение, а в методе replace() - нет.
BobaFoba
Уровень 28
16 февраля 2022, 16:02
оракл как всегда выручает lastIndexOf(String str, int fromIndex) Returns the index within this string of the last occurrence of the specified substring, searching backward starting at the specified index.
Gans Electro
Уровень 59
9 мая 2023, 08:36
Возвращает индекс в этой строке последнего вхождения указанной подстроки, выполняя поиск в обратном порядке, начиная с указанного индекса.