本帖最后由 gavin_ts 于 2012-07-10 10:55:07 编辑

解决方案 »

  1.   

    String a = "1";
    byte b1 = Byte.parseByte(a);数组要自己循环处理
      

  2.   

    Byte.parseByte(a);
    输出出来的是 1    我现在要的形式是0x01
      

  3.   

    注: 转化后的值形式 必须带"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));
    }
      

  4.   

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

  5.   

    上面的b[i]弄错了,看4楼那个出来b单个字符串就可以了
      

  6.   


    谢谢 ldh911先~   因为我现在需要的十六进制的byte   如果说0-9是可以的   那如果是10那十六进制就是A 
    Byte.parseByte(10)的话肯定是不能转换成A 的     
      

  7.   


    b1[i]=parseByte(b.substring(i, i+1),16);就可以转成16进制了
      

  8.   

    悲剧,一发帖子又没了十六进制的问题很容易解决:
    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};
    需要有固定规则!
      

  9.   


    /*
    这个里边的1  其实是页面上输入的十六进制数  只不过 我在我把b传入到Action中以后 用String 类型接受了    而我现在需要将这个 String b   转换成这个形式 byte[] b = {0x01,0x01,0x01,0x01};  我是以每个String中的1  为分割符的  现在的问题就是  我如何把String b = "123456" 转换成 byte[] b={0x01,0x02,0x03,0x04,0x05,0x06} 这样的形式!
    */
    String b = "1111"