Исследование метода indexOf()
для определения позиции подстроки
На предыдущем этапе мы научились проверять, содержит ли строка подстроку с использованием метода contains()
. Теперь давайте рассмотрим другой полезный метод, indexOf()
, который не только показывает, существует ли подстрока, но и указывает ее начальную позицию в строке.
Метод indexOf()
в классе String
в Java возвращает индекс первого вхождения указанной подстроки в строке. Индекс представляет собой позицию первого символа подстроки. Помните, что в программировании индексация обычно начинается с 0. Если подстрока не найдена, метод indexOf()
возвращает -1.
Давайте модифицируем наш предыдущий Java-файл StringContains.java
, чтобы использовать метод indexOf()
.
-
Откройте файл StringContains.java
в редакторе WebIDE.
-
Замените все содержимое файла следующим кодом:
public class StringContains {
public static void main(String[] args) {
String sentence = "Java programming is fun and powerful.";
String keyword = "programming";
// Find the index of the keyword
int index = sentence.indexOf(keyword);
System.out.println("Sentence: \"" + sentence + "\"");
System.out.println("Keyword: \"" + keyword + "\"");
if (index != -1) {
System.out.println("The keyword \"" + keyword + "\" was found at index: " + index);
} else {
System.out.println("The keyword \"" + keyword + "\" was not found.");
}
String anotherKeyword = "Python";
int anotherIndex = sentence.indexOf(anotherKeyword);
System.out.println("\nAnother keyword: \"" + anotherKeyword + "\"");
if (anotherIndex != -1) {
System.out.println("The keyword \"" + anotherKeyword + "\" was found at index: " + anotherIndex);
} else {
System.out.println("The keyword \"" + anotherKeyword + "\" was not found.");
}
}
}
В этом обновленном коде:
- Мы используем
sentence.indexOf(keyword)
для нахождения начального индекса keyword
в sentence
. Результат сохраняется в переменной типа int
с именем index
.
- Мы используем оператор
if
для проверки, равно ли возвращаемое значение index
-1. Если оно не равно -1, это означает, что ключевое слово было найдено, и мы выводим его индекс. В противном случае мы выводим сообщение о том, что ключевое слово не найдено.
- Мы повторяем процесс для "Python", чтобы продемонстрировать случай, когда подстрока отсутствует.
-
Сохраните файл (Ctrl+S или Cmd+S).
-
Откройте терминал внизу WebIDE.
-
Убедитесь, что вы находитесь в каталоге ~/project
.
-
Скомпилируйте модифицированную Java-программу:
javac StringContains.java
-
Запустите скомпилированную Java-программу:
java StringContains
Вы должны увидеть вывод, похожий на следующий:
Sentence: "Java programming is fun and powerful."
Keyword: "programming"
The keyword "programming" was found at index: 5
Another keyword: "Python"
The keyword "Python" was not found.
Вывод показывает, что "programming" начинается с индекса 5 в предложении (помните, что 'J' находится на индексе 0, 'a' - на индексе 1 и так далее, включая пробел). Также корректно указывается, что "Python" не найдено.
Использование метода indexOf()
- это мощный способ не только проверить наличие подстроки, но и определить ее точное местоположение, что может быть полезно для различных задач по манипуляции строками.