Java中字符和byte数组之间的相互转换
来源:互联网 发布:入店来源淘宝站内其他 编辑:程序博客网 时间:2024/04/29 06:17
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[] 之间的相互转换
- hdu-1003 max sum (dp,注意初始化和最后位置的确定)
- .net 中通用的formatstring格式符整理
- 连接到 SQL Server 2005 时出现的问题
- freescale R10 ipu lib 分析 - ipu_param_mem.h
- 一个不错的shell 脚本教程
- Java中字符和byte数组之间的相互转换
- SoTimeCounter SoComposeVec3f
- map的键使用自定义结构体
- 一个简单的数据操作类
- 从薪水说看虚函数与多态
- ASP.NET 2.0页面框架的几处变化
- 页面传值
- 复杂声明分析
- Oracle PL/SQL之不能在function里面调用DBMS_LOCK(Grant to role OR Grant to user)