日期:2014-05-19  浏览次数:20756 次

求教~~~String转换为byte类型十六进制数,在线等!!!!!!!!!!
Java code

String a = "1";
String b = "1111";


如何将上边的转换为十六进制的byte类型 和 byte数组 转换后的值为
Java code

byte a1 = 0x01;
byte[] b1 ={0x01,0x01,0x01,0x01};


注: 转化后的值形式 必须带"0x";

------解决方案--------------------
String a = "1";
byte b1 = Byte.parseByte(a);

数组要自己循环处理

------解决方案--------------------
注: 转化后的值形式 必须带"0x";
—— 你这个需求,说法并不合适,因为 0x 是一种书写形式,在JVM存储的时候,是不存在所谓0x这种写法的。

所以无非是显示时,用格式化来处理,比如:
System.out.printf("0x%02X ", b1);


String b = "1111";
byte[] b1 = new byte[b.length()];
for (int i=0; i<b.length(); i++) {
b1[i] = Byte.parseByte(b.substring(i, i+1));
}

------解决方案--------------------
byte[] b1=new byte[b.length()];
for(int =0;i<b.length();i++)
{
try
{
b1[i]=parseByte(b[i],16);
}
catch(NumberFormatException e)
{

}
}
------解决方案--------------------
上面的b[i]弄错了,看4楼那个出来b单个字符串就可以了
------解决方案--------------------
探讨
引用:
注: 转化后的值形式 必须带"0x";
—— 你这个需求,说法并不合适,因为 0x 是一种书写形式,在JVM存储的时候,是不存在所谓0x这种写法的。

所以无非是显示时,用格式化来处理,比如:
System.out.printf("0x%02X ", b1);


String b = "1111";
byte[] b1 = new byte[b.leng……

------解决方案--------------------
楼主,去帮忙顶我刚发的那个帖子啊
------解决方案--------------------
悲剧,一发帖子又没了。。。

十六进制的问题很容易解决:
String a = "1A";
byte b1 = Byte.parseByte(a, 16); // 16表示进制
System.out.printf("0x%02X ", b1);


但是多个字符的情况会有分割问题,比如:
String b = "1A1A";
你是当作:
{0x01,0x0A,0x01,0x0A};
还是:
{0x1A,0x1A};
需要有固定规则!