日期:2014-05-20  浏览次数:20727 次

将十六进制字符串不能转,直接存到byte[]里面?
String str = "ffffffffffff38771622";

byte[] b = new byte[32]; 


我想把str每从位不转直接存到b这个byte数组里面。 怎么存呢?

不是把f转成102来存。

------解决方案--------------------
Java code

b = str.getBytes("ISO-8859-1");

------解决方案--------------------
探讨

str = "ffffffffffff38771622";

其实我这个就是,内容了。你那是什么意思 ?

我想达到的效果
b[0]=f
b[1]=f
b[2]=f
b...
b[]=3
b[]=8
b[]=7
b[]=7
...

------解决方案--------------------
再看了下,1楼的意思也一样,只不过都要再手工循环一边处理。

就是按条件的执行 b[0] = (byte) b[0]-'a'; 或者 b[0] = (byte) b[0]-'0';
------解决方案--------------------
str.toCharArray()
获得char[]型结果
------解决方案--------------------
Java code

            String str = "ffffffffffff38771622";
            byte[] b = new byte[str.length()];
            for (int i=0; i<b.length; i++) {
                b[i] = (byte)(Integer.parseInt(str.substring(i,i+1),16));
            }
            System.out.println(Arrays.toString(b));

------解决方案--------------------
toCharArray()