题目
计算字符串中子串出现的次数
两个方法
-
方法一:使用
substring(indexStart,indexEnd)
方法
获取str左闭右开区间内的subStr
for循环遍历所有符合子串长度的子串,如果相同,则count++ -
方法二:使用
indexOf()
方法
- indexOf(String str): 返回指定字符str在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- indexOf(String str, int index):
返回从 index 位置开始查找指定字符str在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
public class Problem49 {
public static void main(String[] args) {
String str = "Doyoulovesushilovesushilovelove";
String subStr = "ves"; //子串
System.out.println("子串出现次数:"+countStr(str,subStr));
}
public static int countStr(String str, String subStr ){
int count = 0;
//从字符串起始位置查找
int n = 0;
//当找到子串
while(str.indexOf(subStr,n)!=-1){
count++;
//从找到的子串后开始继续查找
//indexOf()返回的是找到子串的起始位置,故需要加上子串长度
n = str.indexOf(subStr,n)+subStr.length();
}
return count;
}
}
结果如下: