今天给各位分享java中字符和字节数组的知识,其中也会对java中字符和字节数组的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java如何获取字符串的字节数2、java的字符串转换成byte数组后,遍历出来的的是结果是不是参照了ascii码??3、java 怎么把一个字符串数组转换成一个字节数组4、java中如何将字符串转化成特定长度的字节数组5、java中String 数组和byte数组的区别,为什么要互相转换??6、java中String类型的如何转为byte[]
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);
}
java的字符串转换成byte数组后,遍历出来的的是结果是不是参照了ascii码??
字符串转成byte数组,是要根据字符编码,编码不同byte数组也可能不同,ascii码对应的拉丁字母基本上值是不变的,只不过在不同的编码里可能占有位数不一样,’h’在iso8859-1里是一个字节的104,在utf-8里也是,但在utf-16le里是2个字节的104
java 怎么把一个字符串数组转换成一个字节数组
String []strs={“1″,”2″,”3”};
int sum=0;
for(String str:strs){
byte[]bytes=str.getBytes();
sum+=bytes.length;
}
System.out.println(“strs字符串数组占的字节数:”+sum);
java中如何将字符串转化成特定长度的字节数组
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=0;i byteArray.length;i++)
System.out.print((char)byteArray[i]);
System.out.println();
for(int i=0;i byteArray2.length;i++)
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));
}
}
执行结果:
java中String 数组和byte数组的区别,为什么要互相转换??
一个byte表示一个字节,8位的,整数范围是-128-127.
***************************************************************
String转化为byte:(这种情况很少)
任何以字符串的形式表示的数字组合,比如说“111”,十进制表示111,二进制表示7,等,转化为byte都是合法的,但是如果以16进制来表示,“111”的十进制值是273,则超过-128-127的范围了,所以被认为是非法转换。
另外任何除了数字组合的字符串,比如说有字母“c”,想转化为Byte都认为是非法的。
****************************************************************
byte[]转化为String:(较常见)
由于byte数组存储的是8位8位的字节,所以转化为String要具体看默认的字符编码,比如常见的ascii编码,8个bit就可以转化为一个字节,10个大小的byte数组就可以转化为长度为10的字符串
java中String类型的如何转为byte[]
一、String转byte数组简单版:
1、String str = “abcd”;
2、byte[] bs = str.getBytes();
二、复杂版
// pros – no need to handle UnsupportedEncodingException // pros – bytes in specified
encoding scheme byte[] utf8 = “abcdefgh”.getBytes(StandardCharsets.UTF_8);
System.out.println(“length of byte array in UTF-8 : ” + utf8.length);
System.out.println(“contents of byte array in UTF-8: ” + Arrays.toString(utf8));
Output : length of byte array in UTF-8 : 8 contents of byte array in UTF-8: [97, 98, 99, 100, 101, 102, 103, 104]1
扩展资料:
反过来,将Byte数组转化为String的方法
using System;
using System.Text;
public static string FromASCIIByteArray(byte[] characters)
{
ASCIIEncoding encoding = new ASCIIEncoding( );
string constructedString = encoding.GetString(characters);
return (constructedString);
}
·
关于java中字符和字节数组和java中字符和字节数组的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。