java如何获取字符串的字节数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何获取字符串的字节数相关的知识,希望对你有一定的参考价值。

字符串是可以转变成字节数组,然后统计一下字节数组的长度即可,参考如下代码:
Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。

public static void main(String []args) throws UnsupportedEncodingException
// 运行结果:2
System.out.println("测试".getBytes("ISO8859-1").length);
// 运行结果:4
System.out.println("测试".getBytes("GB2312").length);
// 运行结果:4
System.out.println("测试".getBytes("GBK").length);
// 运行结果:6
System.out.println("测试".getBytes("UTF-8").length);
参考技术A java是以unicode编码的。字符串的字节的长度跟编码有关系。
比如
String
msg
=
"中文abc"
msg.getBytes("UNICODE").length;
结果是12
msg.getBytes("ISO8859-1").length;
结果是5
msg.getBytes("GBK").length;
结果是7

java 按字节获取字符串长度

String str ="做·账、收·款、充·账、报·账" 怎么按字节获取他的字符串长度,特别注意的是全角字符· 我用的网上的一个方法,怎么计算str的字节长度是26 ,实际上是30。下面的代码是网上找的一个例子,貌似对于· 这个字符不对呀 public static int getWordCount(String s) int length = 0; for(int i = 0; i < s.length(); i++) int ascii = Character.codePointAt(s, i); if(ascii >= 0 && ascii <=255) length++; else length += 2; return length;

由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串的长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,
如果是汉字或其他全角字符,Ascii会大于255。
参考技术A 话说编码和实际字节长度有关系么...
java一个字符char占2个字节的么,15个字符就是30呗

以上是关于java如何获取字符串的字节数的主要内容,如果未能解决你的问题,请参考以下文章

(java)如何获取字符串的字节数!

java字符串按字节补空问题

Java - 确定要从波形文件中读取以获取时间戳的字节数

java 按字节截取字符串问题

java中怎么获取一个字符串的长度

java file 获取文件大小 是啥单位