首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

求教~String转换为byte类型十六进制数,

2012-08-07 
求教~~~String转换为byte类型十六进制数,在线等!!!!!!!!!!Java codeString a 1String b 1111如

求教~~~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};
需要有固定规则!

热点排行