Java中byte[]、String、Hex字符串等转换

/*输入一个byte和byte[]合并为byte[]*/
public byte[] byteMerger(byte byte_1, byte[] byte_2) {
		byte[] byte_3 = new byte[1 + byte_2.length];
		byte_3[0] = byte_1;
		System.arraycopy(byte_2, 0, byte_3, 1, byte_2.length);
		return byte_3;
	}


/*输入一个byte[]和byte[]合并为byte[]*/
public byte[] byteMerger(byte[] byte_1, byte[] byte_2) {
		byte[] byte_3 = new byte[1 + byte_2.length];
		byte_3[0] = byte_1;
		System.arraycopy(byte_2, 0, byte_3, byte_1.length, byte_2.length);
		return byte_3;
	}

/*输入一个string(16进制的字符hex eg:ff)输出为16进制的byte[],注意输入为小写的hex字符串*/
public byte[] hexStringToByte(String hex) {
        int len = (hex.length() / 2);
        byte[] result = new byte[len];
        char[] achar = hex.toCharArray();
        for (int i = 0; i < len; i++) {
            int pos = i * 2;
            result[i] = (byte) (charToByte(achar[pos]) << 4 | charToByte(achar[pos + 1]));
        }
        //System.out.println(Arrays.toString(result));
        return result;
    }

    private byte charToByte(char c) {
        //return (byte) "0123456789ABCDEF".indexOf(c);
        return (byte) "0123456789abcdef".indexOf(c);
    }

/*输入10进制数字字符串,输出hex字符串(2位,eg: f 则输出 0f)*/
String value= "100";
int parseInt = Integer.parseInt(value, 10);
String hexString = Integer.toHexString(parseInt);
            if (hexString.length() < 2) {
                hexString = '0' + hexString;
            }
            header = header + hexString;
        }


/*输入16进制byte[]输出16进制字符串*/
    public static String byteArrayToHexStr(byte[] byteArray) {
        if (byteArray == null) {
            return null;
        }
        char[] hexArray = "0123456789ABCDEF".toCharArray();
        char[] hexChars = new char[byteArray.length * 2];
        for (int j = 0; j < byteArray.length; j++) {
            int v = byteArray[j] & 0xFF;
            hexChars[j * 2] = hexArray[v >>> 4];
            hexChars[j * 2 + 1] = hexArray[v & 0x0F];
        }
        return new String(hexChars);
    }



展开阅读全文

没有更多推荐了,返回首页