Посчитать количество вхождений подстроки в строку
У меня есть две переменные 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);