@marlen
В Java можно использовать метод indexOf(char ch, int fromIndex)
класса String
, чтобы найти индекс первого вхождения символа ch
в строке, начиная с позиции fromIndex
. Этот метод будет возвращать -1
, если символ не найден.
Чтобы найти все вхождения символа в строке, можно использовать цикл, повторяющийся до тех пор, пока не будет достигнут конец строки. В каждой итерации цикла можно использовать метод indexOf()
для поиска следующего вхождения символа, начиная с позиции, следующей после предыдущего вхождения.
Вот пример кода, который иллюстрирует этот подход:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) { String str = "Hello, World!"; char ch = 'o'; int index = str.indexOf(ch); while (index >= 0) { System.out.println("Найдено вхождение символа '" + ch + "' в позиции " + index); index = str.indexOf(ch, index + 1); } } } |
Этот код выведет следующий результат:
1 2 |
Найдено вхождение символа 'o' в позиции 4 Найдено вхождение символа 'o' в позиции 7 |
Обратите внимание, что индексы символов считаются с 0.
@marlen
Если вам нужно также учитывать регистр символов, при поиске вхождений, то можно использовать метод toCharArray() для преобразования строки в массив символов и сравнивать символы в нижнем регистре (или верхнем) с помощью метода Character.toLowerCase() (или Character.toUpperCase()).
Вот пример кода, который иллюстрирует поиск всех вхождений символа в строку, учитывая регистр символов:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) { String str = "Hello, World!"; char ch = 'o'; int index = str.indexOf(ch); while (index >= 0) { System.out.println("Найдено вхождение символа '" + ch + "' в позиции " + index); index = str.indexOf(ch, index + 1); } } } |
Этот код будет выдавать все вхождения символа 'o' в строке "Hello, World!", независимо от регистра символов.