byte by = str.getBytes()if( by[ i ] < 0 ){
   不过就算不是汉字,是日文等也会有<0出现,不知道能不能完成你的任务。
}

解决方案 »

  1.   


    获得这个字符的unicode码的数值,来判断,因为,java是以unicode的形式存放字符,汉字有个范围,你可以查一下一些参考书的附录,好像基本都有。
    那个扩展,当然也可以了,因为,unicode包含了全世界的语言,而且,都当作一个字符来处理的,你可以查不同语言的值得范围,来做的
      

  2.   

    ……把unicode字符全打出来就是了。然后数,就六万多……没关系。
      

  3.   

    汉字两个字节,字母一个字节。所以     
        String string = new String("文字wenzi");
        byte[] arrbyte = string.getBytes();
        System.out.println(arrbyte.length);
        System.out.println(string.length());
    -------------------------------------------------
    结果 
    9
    7
    OK ?
      

  4.   

    如果要完成你的任务那只要if( str.length() == str.getBytes().length ){        不含汉字
        
    }else{
            全为汉字
    }
      

  5.   

    我知道,但是如果是别的文字,比如日语呢?关键还是要知道unicode中汉字的位置。
      

  6.   

    不管是gbk,big5,unicode,utf8,拿来一个文件,一个一个byte地读,一个byte八个bit of 0or1. 没有读到任何一开头的,全英文;没有读到任何0开头的,全中文。
    我们写过一个类可以识别文件是不是UTF-8,是不是ASCII, 是不是unicode or UTF16.如果看看ultra edit的option, 它也可以识别这些文件的。
      

  7.   

    建议楼主看看string encoding方面的文章,先要看什么是charset.java1.4有个package, NIO, 应该有帮助。