我现在要得到下面字符串的字节数
String str = "你好abcds";
str.length();得到的长度为7
但是汉字在unicode中占用两个字节,因此我想得到字符串str占用的字节数,
但是现在不知道怎样判断一个字符是否为汉字,请高手帮帮忙

解决方案 »

  1.   

    这个大概不好判断吧,你可以搜索指定的汉字字符是否有......
    if(str.indexof("你好")!=-1)
    {
    ..........
    }
      

  2.   

    碰到问题应该先搜索论坛, 而不是直接提问. 有些问题你提问的时间足以找到答案. Google/Baidu是帮你解决问题的重要渠道.
    http://topic.csdn.net/t/20060322/19/4632828.html
      

  3.   

    如果要想判断是否是中文,参考楼上,用正则
    如果只是要判断字节数System.out.println("我们abc".getBytes().length);
      

  4.   

    用String的getBytes方法求字节数时要注意平台相关的编码
    不同平台的结果可能不同 如Unix就需要指定charset
      

  5.   

    用ASCII码判断:
    GBK编码的范围是:高字节从0x81到0xFE,低字节从0x40到0xFE,同时不包括0x7F.for (char c : "你好abcds".toCharArray() )
    {
    if ( c > 0x80)
    {
    System.out.println(c + "  this is a character");//是一个汉字.
    }
    }
      

  6.   


    package zhao;public class TestClass{

       
        public static void main(String[] args) {
           String s = "我是woshi";
           char[] c = s.toCharArray();
           int length = 0;//占的字节数!
           System.out.println(c.length);
           for(int i=0;i<c.length;i++) {
            if(c[i]>128) length++;    //假如为是汉字,就+1          
            length++;//都+1
           }
           System.out.println(length);
        }}
      

  7.   

    在JAVA中每个字符都是占用16比特的UNICODE字符,所以汉字和英文或其他符号都是相同的。
    所以长度乘二就是占的字节数了。
      

  8.   

    答:汉字中的字符串的长度,谁呀谁能说得清(一句玩笑话)。
    若:String str = "你好abcds"; 
    str.length();得到的长度为7 ==》你怎么就能这么肯定它一定是7个字节?我的意思是说:你得先问一下,在哪个Charset下,你要求出它的字节数。谁说,一个汉字就一定是两个字节?
    楼主啊,给我们一点启示吧,你要的是哪个字符集下的长度啊?
      

  9.   

    其实楼上几位大侠,都给出了不错的解答了,
    不过我还是想提供另外一种方法,
    是我以前用过的一种方法:String str = "你好abcds"; 
    for (int i = 0; i <  str.length(); i++){
    char c =  str.charAt(i);
    if (Character.isLetter(c)){  //中文
    //自己的处理代码
    }
    }