求字符串中某一指定字符串出现的次数(java)

题目描述在字符串 a="abkkcdekafghkkijkkmn" 中找出子串 “kk” 出现的次数。

在String类中 判断字符串是否包含某一子串,用contains(); 来判断 返回值类型为 Boolean;

在String类中 indeof();方法既可以判断字符串是否包含某一子串,还可以返回该子串第一次出现的索引;

所以用indexof()来写

详细代码:

class  StringTest
{
	/*
             方法一
        */
     
	public static int getSubCount(String str,String key){
		int count = 0;
		int index = 0;

		while((index=str.indexOf(key))!=-1){
			System.out.println("str="+str);
			str = str.substring(index+key.length());

			count++;	
		}
		return count;
	}

	/*
	方式二。

	*/
	public static int getSubCount_2(String str,String key){
		int count = 0;
		int index = 0;

		while((index= str.indexOf(key,index))!=-1){
			System.out.println("index="+index);
			index = index + key.length();

			count++;
		}
		return count;
	}

	public static void main(String[] args) {
		String str = "kkabkkcdkkefkks";

                
		System.out.println("count="+getSubCount_2(str,"kk"));
	}

}

方法一:利用index=str.indexOf(key) 得到第一次出现子串的索引,再通过str=str.substring(index+key.length();

获取截取后的字符串,通过循环,当不存在子串时index=-1退出循环。

方法二:

在方法中时在原字符串中进行查找,index= str.indexOf(key,index)找到第一次出现子串的索引,

index = index + key.length() 计算出在下次查找时应从index的索引位置查找。

通过循环即可全部找出。相对于第一种方法,该方法是在本字符串中进行操作,不生成多余字符串。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值