Посчитать количество вхождений подстроки в строку

У меня есть две переменные text, text2. Переменной text присваивается та строка, которую вводит пользователь, а text2 присваивается значение строки в самом коде. Нужно посчитать, сколько раз строка text2 входит в строку text. Вот так выглядят переменные:

    String t = reader.readLine();
    String t2 = "get out of my swamp";

Ответы (2 шт):

Автор решения: gil9red

У самого String нет метода count, поэтому используйте самописный:

public static int count(String str, String target) {
    return (str.length() - str.replace(target, "").length()) / target.length();
}

Использование:

// Сколько раз строка t2 встречается в строке t
System.out.println(count(t, t2));

...

String t = "/get out of my swamp/get out of my swamp/";
String t2 = "get out of my swamp";
System.out.println(count(t, t2))
// 2
→ Ссылка
Автор решения: Blacit

Как один из вариантов тоже может сработать, здесь используются регулярные выражения:

   public class Substring {
    public static void main(String []args) {
        String str = "abcabcabc";
        String substr = "abc";
        Pattern p = Pattern.compile(substr);
        Matcher m = p.matcher(str);
        int counter = 0;
            while(m.find()) {
                counter++;
            }
            str = str.replaceAll("abc", "defg");
            System.out.println(counter);
            System.out.println(str);
    }
}

Либо такой вариант, может, он будет проще, с использованием split.

String symbol = "о";
      String text = "Добрый день!";
      System.out.println((text + "\0").split(symbol).length - 1);
→ Ссылка