char[]与byte[]相互转换

本文深入探讨了Java中字符数组(char[])与字节数组(byte[])的相互转换过程,利用Charset类进行编码与解码,确保字符集统一。同时介绍了ByteBuffer类如何实现char与byte之间的软转换,无需编码解码步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

char[]与byte[]相互转换

Charset类

Charset提供encode与decode分别对应char[]到byte[]的编码和byte[]到char[]的解码,具体代码如下:

Chaeset charset=Charset.forName("UTF-8");
ByteBuffer byteBuffer=charset.encode(String);//why string?
byte[] ba=byteBuffer.array();//转化成byte[]
CharBuffer charBuffer=charset.decode(byteBuffer);
char[] ca=charBuffer.array();//转化成char[]

这里编码与解码都在一个类中完成,通过 forName 设置编解码字符集,这样更容易统一编码格式。

ByteBuffer 类

ByteBuffer类提供一种char和byte之间的软转换(char转byte),他们之间转换不需要编码与解码,只是把一个16bit的char拆分成两个8bit的byte表示,他们的实际值并没有被修改,仅仅是数据类型做了转换。具体代码如下:

ByteBuffer heapByteBuffer=ByteBuffer.allocate(1024);
ByteBuffer byteBuffer=heapByteBuffer.putChar(c);//c为char[]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值