@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!", независимо от регистра символов.