转自:https://www.cnblogs.com/areful/p/10615091.html
package gj;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.util.Arrays;
/**
* Author: areful
* Date: 2019/3/28
*/
public class CharByteKit {
public static byte[] getBytes(char[] chars) {
Charset cs = Charset.forName("UTF-8");
CharBuffer cb = CharBuffer.allocate(chars.length);
cb.put(chars);
cb.flip();
ByteBuffer bb = cs.encode(cb);
return bb.array();
}
public static char[] getChars(byte[] bytes) {
Charset cs = Charset.forName("UTF-8");
ByteBuffer bb = ByteBuffer.allocate(bytes.length);
bb.put(bytes).flip();
CharBuffer cb = cs.decode(bb);
return cb.array();
}
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
public static char byteToChar(byte[] b) {
int hi = (b[0] & 0xFF) << 8;
int lo = b[1] & 0xFF;
return (char) (hi | lo);
}
public static void main(String[] args) {
// char[] <===> byte[]
char[] c = getChars(new byte[]{65, 2, 3});
System.out.println(Arrays.toString(c));
byte[] b = getBytes(c);
System.out.println(Arrays.toString(b));
// char <===> byte[]
byte[] b2 = charToByte('A');
System.out.println(Arrays.toString(b2));
char c2 = byteToChar(b2);
System.out.println(c2);
}
}
本文提供了一种在Java中实现字符数组与字节数组相互转换的方法,包括使用UTF-8编码进行转换的具体实现。此外,还展示了如何将单个字符与字节数组互相转换,并通过实例演示了这些转换过程。

被折叠的 条评论
为什么被折叠?



