Подсчет подстрок в строке: различные методы и примеры кода

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

Метод 1: использование встроенной функции count() (Python)
Python предоставляет встроенную функцию count()для подсчета вхождений подстроки в строку.

string = "Hello, hello, hello!"
substring = "hello"
count = string.count(substring)
print(count)  # Output: 3

Метод 2: использование регулярных выражений (Python, Java, Ruby)
Регулярные выражения предлагают мощный и гибкий способ сопоставления и подсчета подстрок в строке. Вот пример на Python:

import re
string = "Hello, hello, hello!"
substring = "hello"
count = len(re.findall(substring, string, re.IGNORECASE))
print(count)  # Output: 3

Функция re.findall()возвращает список всех непересекающихся совпадений шаблона в строке.

Метод 3: использование функции indexOf() (Java)
В Java вы можете использовать функцию indexOf(), чтобы найти индекс подстроки внутри строки. Повторно выполняя поиск подстроки и обновляя начальный индекс, вы можете подсчитать вхождения.

String string = "Hello, hello, hello!";
String substring = "hello";
int count = 0;
int index = 0;
while (index != -1) {
    index = string.indexOf(substring, index);
    if (index != -1) {
        count++;
        index += substring.length();
    }
}
System.out.println(count);  // Output: 3

Метод 4: использование метода scan() (Ruby)
В Ruby вы можете использовать метод scan()для подсчета вхождений подстроки в строку.

string = "Hello, hello, hello!"
substring = "hello"
count = string.scan(substring).length
puts count  # Output: 3

В этой статье мы рассмотрели несколько методов подсчета вхождений подстроки в строку. Мы рассмотрели методы использования встроенных функций, регулярных выражений и методов манипулирования строками в Python, Java и Ruby. В зависимости от вашего языка программирования и требований вы можете выбрать наиболее подходящий для вашей задачи метод.