byte [] yy={0x44,0x45,0x46};
String xxx=new String(yy);
System.out.println(xxx);
正确;
---------------------------------------------------
byte [] yy={0x44,0x45,0x86};//值大了
String xxx=new String(yy);
System.out.println(xxx);
通不过编译;
---------------------------------------------
我想实现一个3字节的字符串xxx,三个字节的值依次为:0xdd 0xff 0xee;
程序怎么写?
String xxx=new String(yy);
System.out.println(xxx);
正确;
---------------------------------------------------
byte [] yy={0x44,0x45,0x86};//值大了
String xxx=new String(yy);
System.out.println(xxx);
通不过编译;
---------------------------------------------
我想实现一个3字节的字符串xxx,三个字节的值依次为:0xdd 0xff 0xee;
程序怎么写?
byte[] yy = {(byte)0xee, (byte)0xff, (byte)0xdd}; 应该就行了。
这个值无法赋值给byte类型变量。
>127无法赋值给byte类型变量。
String xxx = new String(yy)
实际上默认是指的,new String(yy, "GB2312"),但是 [dd,ee,ff] 是不正确的 GB2312 编码字节,因此,上面的语句得不到你想要的字符串。如果你想要 3 个char 的字符串,你应该用
String xxx = new String(yy, "iso-8859-1")关于这一点的更详细说明,推荐参考一篇文章:
http://www.regexlab.com/zh/encoding.htm