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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package test;
/**
* 设计一个方法,用于获取一个字符串中指定子串出现的次数。
* 比如说"hanbasdnbafllgnbahjnbakqqqqlnbaxi"
* 在这个字符串中,多有个nba?
*/

public class Test4 {
        public static void main(String[] args) {
                String s1 = "87nba00nba00nba00nba0nba0nba";
                String s2 = "nba";
                int geshu = geShu(s1, s2);
                System.out.println(geshu);
        }

        /**
         * split方法在切割时,如果最后是以切割的字符结尾时,结尾后的部分不会加载到数组中。
         * 特别的一点是,当结尾部分是以几次切割的字符结尾时,结尾的切割字符都被忽略了
         * 以此题为例:"87nba00nba00nba00nbanbanba"以nba切割时,最后的三个nba跟1个nba的效果一样
         */
        public static int geShu(String s1, String s2) {
                int count = 0;
                //先判断结尾有几个切割字符
                while (s1.endsWith(s2)) {
                        count++;
                        s1 = s1.substring(0, s1.length() - s2.length());
                }
                //再计算不以切割字符结尾的个数
                int i = s1.split("nba").length - 1;
                //相加就得到个数
                count += i;
               
                return count;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马