用unicode码, 汉字的unicode码有一定范围

解决方案 »

  1.   

    楼上的说得都不错,我补充一点,在java中,英文和汉字的字长都是1
      

  2.   

    汉字的UNICODE范围在19968~171941之间。//CountChinese.java
    public class CountChinese
    {
    public static boolean isChinese(char a)
    {
    int v=(int)a;
    return (v>=19968 && v<=171941);
    }

    public static void main(String[] args)
    {
    String str=new String("abc中d华112人e民**^$%*&()共)和ggafda,.国[]l;");
    int cnt=0;

    for(int i=0;i<str.length();i++)
    {
    if(isChinese(str.charAt(i)))
    cnt++;
    }
    System.out.println("共有汉字:"+cnt+" 个。");

    }
    }
      

  3.   

    : FutureStonesoft(丑石) ( ) 说的对!
      

  4.   

    回复人: FutureStonesoft(丑石) ( ) 信誉:100  2004-03-31 16:38:00  得分:0 
     
      汉字的UNICODE范围在19968~171941之间。
    -------------------------------------------------------------------------这数字从哪里来的?
    我看UnicodeBlock的源代码,发现汉字所在的Block范围是 0x4E00 <= ch < 0xA000
    就是 19968~40960。 你的上限171941似乎太大了吧,很多外字都被你包括进来了。
      

  5.   

    FutureStonesoft(丑石) 
    的代码我试过了没有问题
      

  6.   

    http://www.kan68.com/index3.htm?user=djb_skyface