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

Python013

(java)如何获取字符串的字节数!,第1张

(java)如何获取字符字节数!, 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)

}

c# 获取字符串的字节数

C#截取字符串字节数 代码如下:

public int bytelenght(string str)

{

byte[] bytestr = System.Text.Encoding.Unicode.GetBytes(str)

int j = 0

for (int i = 0i <bytestr.GetLength(0)i++)

{

if (i % 2 == 0)

{

j++

}

else

{

if (bytestr[i] >0)

{

j++

}

}

}

return j

}

谢谢采纳

c++ 怎样获取一串字符串的字符数,不是字节数

定义一个字符数组,然后根据字符长度循环得到字符

比如char ch[20]

这个20可以用字符实际长度getlength()获取

然后再循环获取字符

ch[i]

c#求字符串的字节数

其实用不着那么复杂计算的。注意:C#中string.Length只是计算字符串“字符”的个数,不计算字节;但是汉字两个字节+数字(英文字符)一个字节,才是6个,简单的代码如下: byte[] bytes = Encoding.Default.GetBytes("1243我")Default(根据自己究竟是汉字还是数字等,自动合理分配内存所需要的字节空间)

Console.WriteLine(bytes.Length)

C#如何获得存放字符串的字节数组?

byte[] System.Text.Encoding.Default.GetBytes(string s)

如何计算一个Unicode字符串的字节数

你就是一个byte一个byte读取的吧?一个汉字两个byte(不含surrogate情况),文件中存两个byte,你从文件中读取2个byte,就是这样 查看原帖>>

java下字符串和字节数组如何转换?

strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length])2、字符串转换成字节数组 byte[] byBuffer = new byte[200]byBuffer= strInput.getBytes()注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。

import java.io.ByteArrayInputStream\x0d\x0aimport java.io.ByteArrayOutputStream\x0d\x0a\x0d\x0apublic class IOAnswer {\x0d\x0a\x0d\x0apublic static void main(String[] args) {\x0d\x0aString str = "Hello,ABC"//源字符串\x0d\x0a//字节数组输入流\x0d\x0aByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes())\x0d\x0a//字节数组输出流\x0d\x0aByteArrayOutputStream baos = new ByteArrayOutputStream()\x0d\x0a//循 环读取\x0d\x0aint b = -1\x0d\x0awhile((b = bais.read()) != -1){\x0d\x0a//把大写字母转换成小写字母\x0d\x0aif(b >= 97 &&b b -= 32\x0d\x0a}\x0d\x0a//写回到字节数组输出流中\x0d\x0abaos.write(b)\x0d\x0a}\x0d\x0a//输出,并把字节数组输出流转换成字符串\x0d\x0aString out = baos.toString()\x0d\x0aSystem.out.println(out)\x0d\x0a}\x0d\x0a}

public class Test{

public static void main(String[] args){

byte[] byteArray = "Test".getBytes()

byte[] byteArray2 = "测试".getBytes()

System.out.println("byteArray.length="+byteArray.length)

System.out.println("byteArray2.length="+byteArray2.length)

for(int i=0i < byteArray.lengthi++)

System.out.print((char)byteArray[i])

System.out.println()

for(int i=0i < byteArray2.lengthi++)

System.out.print((char)byteArray2[i])

}

}

汉字2个字节编码,1个汉字转换成2bytes

public class Test{

public static void main(String[] args){

//string to byte[]

byte[] byteArray = "Test".getBytes()

byte[] byteArray2 = "测试".getBytes()

//byte[] to string

System.out.println("s="+new String(byteArray))

System.out.println("s2="+new String(byteArray2))

}

}

执行结果: