public static final String bytesToHexString(byte[] bArray)
{
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i < bArray.length; i++)
{

sTemp = Integer.toHexString(0xFF & bArray[i]); 
sb.append('%');
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
}以上是一编码方法,怎样写一解码方法,把编码生成的字符串解码成byte数组

解决方案 »

  1.   

    学习,顶写入string 再得到byte数组?
      

  2.   

       private static byte[] getHexToByteString(String s){
       if(s.length()%2==0){
       byte[] rtn=new byte[s.length()/2];
       char[] c=s.toCharArray();
       for(int i=0;i<rtn.length;i++){
      rtn[i]=(byte)Integer.parseInt(c[2*i]+""+c[2*i+1],16);
       }
       return rtn;
       }
       else
       return new byte[]{};
       }
      

  3.   

    //晕 少了一句
    private static byte[] getHexToByteString(String s) {
    s=s.replaceAll("%", "");
    if (s.length() % 2 == 0) {
    byte[] rtn = new byte[s.length() / 2];
    char[] c = s.toCharArray();
    for (int i = 0; i < rtn.length; i++) {
    rtn[i] = (byte) Integer.parseInt(c[2 * i] + "" + c[2 * i + 1],
    16);
    }
    return rtn;
    } else
    return new byte[] {};
    }
      

  4.   


    sTemp = Integer.toHexString(0xFF & bArray[i]);
    这句有意义吗??你和全1与运算还是本身呀,这就相当于
    sTemp = Integer.toHexString(bArray[i]);