黑马程序员技术交流社区

标题: 求"java"在字符串中出现的次数? [打印本页]

作者: zhangjianwin    时间: 2016-9-8 13:12
标题: 求"java"在字符串中出现的次数?
自己琢磨的一个解决办法,还有其他更快的吗?
class TestCount {
        public static void main(String[] args) {
                String str = "woaijavahahajavaaiwojava";
                System.out.println(count(str,"java"));
        }
        public static int count(String str,String s) {
      return   (str.length()-str.replace("java","").length())/(s.length());
        }
}


作者: gjf821687    时间: 2016-9-8 14:58
这种方法你都想的出来……
作者: 冬天有点冷    时间: 2016-9-8 15:13
本帖最后由 冬天有点冷 于 2016-9-8 15:27 编辑

楼主方法挺好的, 点赞~

作者: 卡卡布    时间: 2016-9-8 16:03
package com.heima.eclipse;

public class HelloWorld {

        /**
         * @param args
         */
public static void main(String[] args) {
                {
                        String s1 = "woaijavahahajavaaiwojava";  
                String s2 = "java";  
                int count = getCount(s1,s2);  
               
                System.out.println("count = "+count);  
             
                }
                        }
public static int getCount(String str,String sub)  
{  
    int index = 0;  
    int count = 0;  
    while((index = str.indexOf(sub,index))!=-1)  
    {  
  
        index = index + sub.length();  
        count++;  
    }  
    return count;  
}  
}
作者: 卡卡布    时间: 2016-9-8 16:04
package com.heima.eclipse;

public class HelloWorld {

        /**
         * @param args
         */
public static void main(String[] args) {
                {
                        String s1 = "woaijavahahajavaaiwojava";  
                String s2 = "java";  
                int count = getCount(s1,s2);  
               
                System.out.println("count = "+count);  
             
                }
                        }
public static int getCount(String str,String sub)  
{  
    int index = 0;  
    int count = 0;  
    while((index = str.indexOf(sub,index))!=-1)  
    {  
  
        index = index + sub.length();  
        count++;  
    }  
    return count;  
}  
}      这样也可以
作者: gjf821687    时间: 2016-9-8 19:32
你们那些都太长了
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

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

                String s = "woaijavahahajavaaiwojava";
                Pattern p = Pattern.compile("java");
                Matcher m = p.matcher(s);
                int num = 0;
                while (m.find()) {
                        num++;
                }
                System.out.println(num);
        }
}
作者: double_x    时间: 2016-9-8 19:38
夯家军小旋风前来探探路
作者: blackknight    时间: 2016-9-8 20:42
方法很多,看自己哪个最能理解
作者: crossover    时间: 2016-9-8 21:01
这个方法不错喔
作者: 不灬语    时间: 2016-9-8 21:05
6666666666666666
作者: 曹亚辉    时间: 2016-9-8 21:12
你这个问题,有局限性,如果“java”里面出现空格,也就是“ja  va”的情况下,你就会算不出来java的个数。最好消除一下里面的空格。用规则“ +”被替换成“”就可以实现。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2