java中如何计算一个字符串的byte长度(一个汉字多少字符)

如题所述

中文并不一定是占两个字节的,具体占多少字节是跟具体的编码方式相关的。比如说:GB2312、GBK、GB18030 编码是占用两个字节的,但是 UTF-8 编码的话至少需要占用三个字节。有一个简单方法,就是把大于 0xff 的字符都作为两个字符(当然是在 GBK 环境下)Java code publicstaticint count(String str) { if(str ==null|| str.length ==0) { return0; } int count =0; char[] chs = str.toCharArray(); for(int i =0; i < chs.length; i++) { count += (chs[i] >0xff) ?2 : 1; } return count; } 或者你直接使用 int len = str.getBytes("gbk");上面代码假设你的数据库编码格式是 GBK 的,而不是 UTF-8 的,如果是 UTF-8 的话,上面的代码无效!1字节等于8比特,一个字母是1字节,而一个汉字要用2个字节。一个汉字=2个字符
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-12

java中可以直接使用string类型的getBytes()方法来获得一个字节数组,实例如下:

public static void main(String[]args)
{  
    String ss="hel无此数lo";//字符串
    byte[] buff=ss.getBytes();//字符串转换成字节数组
    int f=buff.length;//取得字节的个数
    System.out.println(f);//打印字节个数
}

相似回答