Как узнать все вхождения символа в строке в java?

Пользователь

от lori_jast , в категории: Java , год назад

Как узнать все вхождения символа в строке в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от steve , год назад

@lori_jast 

Вы можете использовать метод indexOf(char ch, int fromIndex) класса String, чтобы найти все вхождения символа в строке. Например, следующий код найдет все индексы символа 'a' в строке:

1
2
3
4
5
6
7
8
String str = "abcdefgahijklamnopqa";
char ch = 'a';
int index = 0;

while ((index = str.indexOf(ch, index)) != -1) {
    System.out.println("Found at index: " + index);
    index++; // Увеличиваем значение индекса, чтобы продолжить поиск со следующей позиции
}


Результат:

1
2
3
4
Found at index: 0
Found at index: 7
Found at index: 15
Found at index: 24


Вы можете изменить символ ch и строку str в соответствии с вашими потребностями.

Пользователь

от cayla , 4 месяца назад

@lori_jast 

Для того чтобы найти все вхождения символа в строке в Java можно использовать методы класса String, такие как indexOf() или регулярные выражения. Вот примеры кода:

  1. С использованием метода indexOf():
1
2
3
4
5
6
7
String str = "Hello, World!";
char ch = 'o';
int index = str.indexOf(ch);
while (index >= 0) {
    System.out.println("Found at index: " + index);
    index = str.indexOf(ch, index + 1);
}


  1. С использованием регулярных выражений:
1
2
3
4
5
6
7
8
String str = "Hello, World!";
char ch = 'o';

Pattern pattern = Pattern.compile(Pattern.quote(String.valueOf(ch)));
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
    System.out.println("Found at index: " + matcher.start());
}


Оба способа позволяют найти все вхождения символа в строке. Первый способ будет более простым в использовании, но второй метод с помощью регулярных выражений также может быть полезен в более сложных случаях.