java将字节数组转换成string
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java将字节数组转换成string相关的知识,希望对你有一定的参考价值。
字节数组是高字节在前低字节在后如0x01 00 00 00,要转换成字符串00000001的形式,怎么弄,求大神相助
参考技术A不知道你说的字节数组是不是也是字符串数组,如果是可以像下面这样处理:
StringBuilder builder = new StringBuilder();
for(int i=strs.length-1;i>=0;i--)
builder.append(strs[i]);
System.out.println(builder.toString()); 参考技术B byte数组从后往前转就行了:
private String byteArray2String(byte[] byteArray)
StringBuffer sb = new StringBuffer();
for(int i=byteArray.length-1; i>=0 ;i--)
System.out.println(i);
String str_temp = "" + (byteArray[i] & 0xFF);
if(str_temp.length()<2)
sb.append("0");
sb.append(str_temp);
return sb.toString().trim();
参考技术C 这个是所谓的BIG-ENDIAN、LITTLE-ENDIAN,是针对由多个字节组成的数据类型来说的。
比如int(32位,四个字节),
例:
int a = 0x05060708
在BIG-ENDIAN的情况下存放为:
字节号 0 1 2 3
数据 05 06 07 08
在LITTLE-ENDIAN的情况下存放为:
字节号 0 1 2 3
数据 08 07 06 05
而你所说的字节数组转字符串与这个没有关系。它只与字符编码相关(如UTF-8,等)本回答被提问者采纳
java中字节数组byte[]和字符(字符串)之间的转换
转自:http://blog.csdn.net/linlzk/article/details/6566124
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将字节数组转换成string的主要内容,如果未能解决你的问题,请参考以下文章