int num=0;
blooean s=fasle;
String regEx="[\u4e00-\u9fa5]";
Pattern p=Pattern.compile(regEx); 
Matcher m=p.matcher(“中文”); 
s=m.find;
num=m.groupCount();
return num;
为什么m.find为ture,m.groupCount()总为0呢?

解决方案 »

  1.   

    String regEx="[\\u4e00-\\u9fa5]";
      

  2.   

    num=m.groupCount();
    这个是得到正则表达式总共有多少个组.你的表达式里根本就没有组,当然就是0了.
    String regEx="([\u4e00-\u9fa5])";
    给正则表达式加上一个组,num=m.groupCount();这个就会得到组数为1.
      

  3.   

    groupCount()用法不对
    String regEx = "[\u4e00-\u9fa5]";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher("中文");
    out.println(m.find());
    out.println(m.group());
      

  4.   

    String str="fasdf十分似dsf的士fd大夫";
        String regEx="[\u4e00-\u9fa5]";
        Pattern p=Pattern.compile(regEx);
        Matcher m=p.matcher(str);
        String rep=m.replaceAll("");
        
        int result=str.length()-result.length();
        System.out.println("字符串"+str+"中含有"+result+"个中文字符");
      

  5.   

    String str="fasdf十分似dsf的士fd大夫";
        String regEx="[\u4e00-\u9fa5]";
        Pattern p=Pattern.compile(regEx);
        Matcher m=p.matcher(str);
        String rep=m.replaceAll("");
        
        int result=str.length()-rep.length();//上面这写错了,嘿嘿
        System.out.println("字符串"+str+"中含有"+result+"个中文字符");