现有字符串 ababababababababa ,求其中子字符串 aba 出现的次数(使用String类完成)

代码如下:

public class Exercise1 {
    public static void main(String[] args) {
        String s = "ababababababababa";
        String target = "aba";//子字符串
        int times = 0;//记录出现次数
        int length = s.length();//字符串的长度
        int targetLength = target.length();//子字符串长度
        int maxIndex = length-targetLength;//遍历字符串时最大下标
        for(int i= 0;i<=maxIndex;i++)
        {
            String s1 = s.substring(i,i+targetLength);//截取字符串
            if(s1.equals(target))
            times++;

        }
        System.out.println(times);
    }
}

首先题目要求,求以上字符串中的子字符串aba出现的次数,要求使用String类完成,

咱们先用String s 创建一个字符串ababababababababa,再创建一个子字符串,再创建一个times记录出现次数,length求出字符串长度和子字符串长度,int maxInde最大下标用字符串长度减去子字符串长度,字符串长度是17,子字符串长度是3,17-3=14,而最后一次出现aba的下标正好是14,利用for循环小于等于14,i依次++循环,s1=等于s.subString截取字符串,里面有两个参数,说明是指定开始位置到指定结束位置,截取是使用的是左闭右开区间,说明第一次截取的是[0,3),这样第一次截取的是下标0,1,2的字符串,正好是第一次aba,截取赋值s1,这,时if判断是否和子字符串相等,相等则times++,第二次循环,i=1,i+字符串3变成4,subString里面参数是[1,4),这时截取的是下标1,2,3,的字符串bab,赋值s1,if判断不满足条件,进入下次循环,i=2,字符串变成5,subString里面参数变成[2,5),这时截取的是下标2,3,4的字符串aba,赋值s1,if判断满足条件times++,再依次循环times变成了8,说明上述字符串中的子字符串aba一共出现了8次。

以上我说的不好各位大佬多多见谅,可以复制代码直接调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值