java中如何将byte数组数据转换字符串?

int a = 18874624;
int mask = 0xFF;
// 保存转换字节数组
byte[] index = new byte[4];
// 转换每2字节的结果
for (int i = 0; i < 4; i++) {
index[i] = (byte) ((a >> i * 8) & mask);
}
String s1 = new String(index);
System.out.println(s1);
打印出来的s1乱码了。

第1个回答  2012-05-21
String s1 = new String(index);这里加个字符编码试试。
如改为String s1 = new String(index, "utf-8");
第2个回答  2012-05-14
下面一种:
String s1="";
for(int i=0;i<index.length;i++)
s1=s1+index[i];
System.out.println(s1);
结果:01321追问

我的意思是字符串输出的还是18874624这个值

追答

index[i] = (byte) ((a >> i * 8) & mask);这一句我不是很懂。
但index里面的值分别是:0,1,32,1

第3个回答  2012-05-15
这个你可以看下JDK帮助文档,STRING类
第4个回答  2012-05-15
你打印一下index看看! ‘&mask’多此一举 a>> 这是移位操作

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网