Java基础篇--工具类操作之统计字符出现次数

以下是一段歌词,请从这段歌词中统计出朋友出现的次数

“这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。
朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。”;

提示:使用String方法indexOf、substring。

实现方法不唯一,此方法仅作初学者(自己)参考。。。。。

两个方法API介绍
在这里插入图片描述

在这里插入图片描述

实现代码:

package com.string;

public class String_count {

    public static void main(String[] args) {

    int num = 0;
    String str1 = "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
    String str2 = "朋友";
    int index = str1.indexOf(str2);
    while (index!=-1){
        num++;
        str1=str1.substring(index+2);//截取朋友后的字符串
        index=str1.indexOf(str2);
    }
        System.out.println(num);
    }

}

实现结果:

3

后续改进:

方法不唯一,这里还有两个方法,大家请看第一个:
方法二

package com.string;

public class String_count2 {
    public static void main(String[] args) {
        String str1 = "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我";
        String str2 = "朋友";
        String[] arr = str1.split(str2);
        System.out.println(str2+"一共出现了:"+(arr.length-1)+"次");
    }
}

实现结果:

在这里插入图片描述
但是如果将统计字符串str1首尾都加一个str2,就会出现bug

String str1 = "朋友这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我朋友";

结果:
在这里插入图片描述

方法三:

package com.string;

public class String_count3 {
public static void main(String[] args) {

String str1 = "朋友这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。朋友";
String str2 = "朋友";
int startLen = str1.length();
    str1 = str1.replace(str2,"");
    int endLen = str1.length();
    int iCount = (startLen-endLen)/str2.length();
    System.out.println(str2+"一共出现了"+iCount+"次");

}
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值