网上很多实现方法为
    /**
     * 字符串转换成十六进制值
     * @param bin String 我们看到的要转换成十六进制的字符串
     * @return 
     */
    public static String bin2hex(String bin) {
        char[] digital = "0123456789ABCDEF".toCharArray();
        StringBuffer sb = new StringBuffer("");
        byte[] bs = bin.getBytes();
        int bit;
        for (int i = 0; i < bs.length; i++) {
            bit = (bs[i] & 0x0f0) >> 4;
            sb.append(digital[bit]);
            bit = bs[i] & 0x0f;
            sb.append(digital[bit]);
        }
        return sb.toString();
    }    /**
     * 十六进制转换字符串
     * @param hex String 十六进制
     * @return String 转换后的字符串
     */
    public static String hex2bin(String hex) {
        String digital = "0123456789ABCDEF";
        char[] hex2char = hex.toCharArray();
        byte[] bytes = new byte[hex.length() / 2];
        int temp;
        for (int i = 0; i < bytes.length; i++) {
            temp = digital.indexOf(hex2char[2 * i]) * 16;
            temp += digital.indexOf(hex2char[2 * i + 1]);
            bytes[i] = (byte)(temp & 0xff);
        }
        return new String(bytes);
    }但是我的实现方法为
    /**
     * 字符串转换成十六进制值
     * @param bin String 我们看到的要转换成十六进制的字符串
     * @return 
     */
    public static String bin2hex(String bin) {
        StringBuffer sb = new StringBuffer("");
        byte[] bs = bin.getBytes();
        for(int i=0;i<bs.length;i++){                   
            String a=Integer.toHexString(bs[i]);
            //String a=String.format("%x",bs[i])
            sb.append(a);
        }
        return sb.toString();
    }    /**
     * 十六进制转换字符串
     * @param hex String 十六进制
     * @return String 转换后的字符串
     */
    public static String hex2bin(String hex) {
        StringBuffer sb = new StringBuffer("");
        for(int i=0;i<hex.length();i=i+2){
            String a=hex.substring(i,i+2);  
            char b=(char)Integer.valueOf(a,16);                     
            sb.append(b);
        }
        return new String(sb);
     }我感觉下面的方法也能够达到目的,而且测试也通过,但是不知道是否可行?有没有BUG?谢谢指正!!