Java中字符和byte数组之间的相互转换
来源:互联网 发布:crm node online 编辑:程序博客网 时间:2024/04/29 15:03
Java与其他语言编写的程序进行tcp/ip socket通讯时,通讯内容一般都转换成byte数组型,java在字符与数组转换也是非常方便的;
1、将字符转换成byte数组
String str = "罗长";
byte[] sb = str.getBytes();
2、将byte数组转换成字符
byte[] b={(byte)0xB8,(byte)0xDF,(byte)0xCB,(byte)0xD9};
String str= new String (b);
3、为了方便字符的加减操作,通常以16进制字符替代普通字符与byte数组进行相互转换
/**
* 16进制的字符串表示转成字节数组
*
* @param hexString
* 16进制格式的字符串
* @return 转换后的字节数组
**/
public static byte[] toByteArray(String hexString) {
if (StringUtils.isEmpty(hexString))
throw new IllegalArgumentException("this hexString must not be empty");
hexString = hexString.toLowerCase();
final byte[] byteArray = new byte[hexString.length() / 2];
int k = 0;
for (int i = 0; i < byteArray.length; i++) {//因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先
byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);
byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);
byteArray[i] = (byte) (high << 4 | low);
k += 2;
}
return byteArray;
}
/**
* 字节数组转成16进制表示格式的字符串
*
* @param byteArray
* 需要转换的字节数组
* @return 16进制表示格式的字符串
**/
public static String toHexString(byte[] byteArray) {
if (byteArray == null || byteArray.length < 1)
throw new IllegalArgumentException("this byteArray must not be null or empty");
final StringBuilder hexString = new StringBuilder();
for (int i = 0; i < byteArray.length; i++) {
if ((byteArray[i] & 0xff) < 0x10)//0~F前面不零
hexString.append("0");
hexString.append(Integer.toHexString(0xFF & byteArray[i]));
}
return hexString.toString().toLowerCase();
}
- Java中字符和byte数组之间的相互转换
- Java中字符和byte数组之间的相互转换
- Java中字符和byte数组之间的相互转换
- Java中字符串与byte数组之间的相互转换
- JAVA中int型数据和byte数组之间的相互转换
- 文件和byte数组之间相互转换
- java中int类型和byte[]数组之间的转换
- Java中byte[]数组和int之间的转换
- byte数组和String之间的相互转换代码
- byte数组和Int之间的相互转换
- 整型int和字符数组byte相互转换的源程序
- java中byte数组与int类型之间的相互转换(两种方式)
- java中byte数组与int类型之间的相互转换(两种方式)
- java中字符数组和字符串的相互转换
- java中字符数组和字符串的相互转换
- java中字符数组和字符串的相互转换
- java中字符数组和字符串的相互转换
- Java String 和 byte[] 之间的相互转换
- oracle学习笔记 存储结构_表空间
- 七款出色的Python IDE
- hdu 2896 病毒侵袭(AC自动机)
- bzoj 1668
- Docker for Mac 安装及Mysql安装使用
- Java中字符和byte数组之间的相互转换
- NodeJS-基础入门(一)
- static
- 【HTML】淘宝注册页面
- c# DataView.ToTable() 方法 去除表中的重复项
- 高性能MySQL笔记之数据类型和scheme优化
- Java 序列化全解密
- 图片懒加载
- 【HDU 5635 LCP Array】