想到一个最本的办法,呵呵:把传转换,用URLEncoder.encode(str,"gb2312"),如果长度变了就是含有中文字符,不过如果含有非中文的,比如韩文就不管用了。这种方法在只有英文和汉字的时候应该能正常工作。否则将无法得到正确的结果。如果希望得到100%正确的结果,我想比较麻烦。

解决方案 »

  1.   

    http://www.csdn.net/Expert/FAQ/FAQ_Index.asp?id=410
      

  2.   

    http://www.csdn.net/Expert/TopicView1.asp?id=833916
      

  3.   

    比较str的长度即str.length()和将之转成二进制数组的长度即str.getBytes().length的大小是否相等即可
    因为1个中文在字符串里面长度算1,转换成二进制就占两个字节,所以长度会变大
    他们之间的差就是中文字符的个数
      

  4.   

    除了标准ascii好像别国的扩展语言都要占两位的,恐怕难以分辨中文和韩文吧
    只能分辨英文和其他语种
      

  5.   

    public static final int checkChinese(String Str) 

    int r=2;
    for(int i=0;i<Str.length();i++) 
    {
    char ch=Str.charAt(i); 
    short chint=(short)ch; 
    if((chint>=48)&&(chint<=57))
    {
    //这个字符是数字
    }
    else
    if(((chint>=91)&&(chint<=122))||((chint>=65)&&(chint<=90))||(chint==95))
    {
    //这个字符是英文或者是"_"
    r=1;
    }
    else
    if(((chint&0XFF00)>>8)>0) 
    {
    //这个字符是中文
    r=0;
    }
    else
    {
    //这个字符是特殊字符
    r=-1;
    }
    }
    return r; 

      

  6.   

    已经是明天了,怎么没有?
    方便的话:也给我把
    [email protected]
      

  7.   

    java.lang.Character里面的方法对你有用吗?我看好像是可以的.认真看一下吧.
      

  8.   

    呵呵,其实只要了解汉字是如何编码的就会写这个程序了。
    我们知道ASCII编码占一个Byte,而八个bit中最高位一定为0。
    汉字使用两个Byte编码,最高位bit一定是1。
    程序怎么写你还不会吗?
      

  9.   

    对呀,同意楼上的,我的程序就是这么做的,难道还满足不了situju (司徒雎) 的要求?