A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天看到API里的String类,有道题觉得有点意思就是求一个字符串中指定子串出现的次数,原题是这样的

"hanbasdnbafllgnbahjnbakqqqqlnbaxi" 在这个字符串中,多有个nba?

视频中刘意老师的方法是用indexOf(String str)来找到字符串中的第一个nba然后用substring切掉前面的数组,再将后面的重复找nba,再切
这样的方法虽然很百搭,但是我觉得当子字符串已经告诉我们的时候可以有更简单的做法,比如讲nba换成大字符串中没有的#,再将字符串变成字符数组就很好知道其中有几个#了。

代码如下:


public class Findnba {
        public static void main(String[] args) {
                String s = "hanbasdnbafllgnbahjnbakqqqqlnbaxi";
                String s1 = s.replace("nba", "#");
                char[] chs = s1.toCharArray();
                int count = 0;
                for (int i = 0; i < chs.length; i++) {
                        if (chs[i] == '#') {
                                count++;
                        }
                }
                System.out.println(count);
        }

}


3 个回复

正序浏览
这样做是可以的。我估计视频里的做法是希望我们萌生一点逻辑思维。
悄悄告诉你,我是7号~
回复 使用道具 举报
:L居然没人点评一下吗。。

点评

我来点评!  发表于 2015-7-31 01:06
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马