1 "12*".length - ("12*".replaceAll("*","")).length 
结果为:1

解决方案 »

  1.   

    因为“*”是政策表达式里的特殊符号,所以我上面那么写是不行的
    还是老实一点写个循环吧!
        int j = 0;
        int sum = 0;
        j = "12*".indexOf("*",0);
        while(j != -1){
          sum++;
          j = "12*".indexOf("*",j + 1);
        }
        System.err.println("sum = " + sum);
      

  2.   

    package test;public class Test {
      public static void main(String[] args) {
        int j = 0;
        String str = "12**33445*f*f*";
        String str1[] = str.split("/*");
        for (int i = 0; i < str1.length; i++) {
          if ("*".equals(str1[i])) {
            j = j + 1;
          }
        }
        System.out.println(j);
      }
    }
    ----------------------------
    j的值为5
      

  3.   

    ^_^,这样就行了 !
    "12*".length()- ("12*".replaceAll("\\W*","")).length()
      

  4.   

    第一个 \是转义符,而\W指的是非词字符,前面这些是书上的, 下面的就是我自己理解的了,^_^ 可能java正则表达式里面的特殊符号都需要用\W来标记.^_^,不知道对不对.我试了一下+也得这么写!