求教~~~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单个字符串就可以了
------解决方案--------------------
------解决方案--------------------楼主,去帮忙顶我刚发的那个帖子啊
------解决方案--------------------
悲剧,一发帖子又没了。。。
十六进制的问题很容易解决:
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};
需要有固定规则!