统计字数就String.length();
统计中文字数就判断String中的每个char值
c >= 0x4e00 && c <= 0x9fa5 即为中文(包括中文标点)

解决方案 »

  1.   

    没做过这方面,不过我觉得文章在数据库里应该为一个字段
    用数据库的length()函数能得到
    或者去出来用String的length()方法能得到。。如果是是在前台的,获取文章这块的节点,用tag.innerHTML.length能得到看你具体条件
      

  2.   

    那就用String.length();就可以了啊
      

  3.   

    字符串转换成unicode编码,然后转换成byte[]。
    然后循环,如果不是中文,则去掉。
    最后byte/2就是中文字符数。
      

  4.   


    统计字数就String.length();
    哦?把你的代码贴出来看看
      

  5.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Sum sum=new Sum();
    String string="df我d一个兵啊啊啊aa!";
    System.out.println(sum.GetCount(string));
    }
    public int GetCount(String string) {
    int count=0;
    for (int i = 0; i < string.length(); i++) {
    char a=string.charAt(i);
    if (a >= 0x4e00 && a <= 0x9fa5) {
    count++;
    }
    }
    return count;
    }
         //输出7
      

  6.   

    public static void main(String args[]) throws Exception {
    String s = "fjdis 爱在夕阳下,采菊东篱下  jf jd sjoa fd 悠然见南山";
    byte[] b = s.getBytes("unicode");
    int length = b.length;
    int cnt = 0;
    final int min = Integer.parseInt("4E00", 16);
    final int max = Integer.parseInt("9FA5", 16);
    for (int i = 0; i < length; i += 2) {
    int val1 = 0x00FF & b[i];
    val1 = val1 << 8;
    int val2 = 0x00FF & b[i+1];
    int temp = val1 | val2;
    if (min <= temp && temp <= max) {
    cnt++;
    }
    }
    System.out.print(cnt);
    }
    我写了一个,好像不包括标点符号。
    值的范围有待调整。
      

  7.   


    我也测了下,确实没带标点。查了下,有人说中文标点的范围是大等于0xfe30,小等于0xffa0 
    测了下这区间,全角的字母和标点都在里头,不过没包含中文空格