if s.length()<9
 s="0"+s;
long x=Long.valueOf(s);
byte y=Byte.valueOf(s);

解决方案 »

  1.   

    long l = Long.parse(s,16);
    s = s.subString(2,s.length());
    while(s.length()<9){
    s = "0" + s;
    }
    byte[] b = s.getBytes();
      

  2.   

    Sorry, the above should be:long l = Long.parseLong(s,16);
    s = s.subString(2,s.length());
    while(s.length()<9){
    s = "0" + s;
    }
    byte[] b = s.getBytes();
      

  3.   

    各位应该理解错了楼主的意思吧!!应该是这样的吧!
    long l = Long.parseLong(s,16);
    String l_s = new String(l);
    byte[] b = l_s.getBytes();
      

  4.   

    hesi726(hesi):没见过,String l_s = new String(l);不知道,String 有没有这样的构造函数?是不是想生成一个String?为什么不用原来的呢。上面我贴的代码没有调试过,只是顺手写的。下面的的
    public class TypeConvert {
      public static void main(String[] args) {
        String s = "0x123434";
        s = s.substring(2, s.length());
        long l = Long.parseLong(s, 16);
        System.out.println("long value:" + l);
        while (s.length() < 9) {
          s = "0" + s;
        }
        byte[] b = s.getBytes();
         System.out.print("Byte value:");
        for (int i = 0; i < b.length; i++) {
          System.out.print("\t"+ b[i]);
        }  }
    }
      

  5.   

    谢谢各位的支持!!!
    我的意思是说有一个String s="0x12123434",我想把它放进一个byte数组中,数组的内容如下:
    byte[0]=0x34; byte[1]=0x34; byte[2]=0x12; byte[3]=0x12; byte[4]=0x00 ....
    byte数组的长度为8!!!我是一个java初学者,希望大家多帮忙!!!
      

  6.   

    String s="0x12123434";
    s = s.substring(2);
    long len = Long.parseLong(strlen,16);
     byte[] bytearr = new byte[8];
            for (int i = 0; i < 8; i++){
                bytearr[i] = (byte)((data >> (i * 8)) & 0xFF);
            }
    应该是这个意思吧!!
    打印的时候把bytearr用16进制显示就是了!