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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

老师说这题的解题方法用一行代码就能写出来,求大神指点怎么写?

1 个回复

正序浏览
public class Test5 {

        /**
         * "woaijavahahajavaaiwo" 删除该串中所有"java“,并计数有几个
         */
        public static void main(String[] args) {
                String s = "woaijavahahajavaaiwo";
                String regex = "java";                        //定义一个正则表达式
                String[] arr = s.split(regex);        //用split()方法进行切割字符串
                int a = (arr.length - 1);                //字符串被切成三段,所以java共有2个
                System.out.println("该字符串中包含的java有"+ a + "个");
        }
}

不过用spilt()方法有一个不好的地方,如果是"javajava"这种形式的话,用java正则去切的话会全部切没.
所以可以将javajava ""字符串后面加个空格,这样切出来几段字符串,然后减1就是字符串中包含java小串的个数了.代码如下:

public class Test5 {

        /**
         * "woaijavahahajavaaiwo" 删除该串中所有"java“,并计数有几个
         */
        public static void main(String[] args) {
                String s = "javajavawoaijavahahajavaaiwojavajava";
                String s2 = s + " ";
                String regex = "java";                        //定义一个正则表达式
                String[] arr = s2.split(regex);        //用split()方法进行切割字符串s2
                int a = (arr.length - 1);                //字符串被切成arr.length段,所以java共有arr.length - 1个
                System.out.println("该字符串中包含的java有"+ a + "个");
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马