Apache Commons Codec库是一个用于处理常用的编码和解码方法的工具类包,例如Base64,Hex,MD5,SHA1,DES等1。它可以方便地实现byte,二进制,16进制,十进制,ASCII码之间的互转。
第一步,导入依赖
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.16.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.13.0</version>
</dependency>
第二步,编写工具类
import org.apache.commons.codec.binary.BinaryCodec;
import org.apache.commons.codec.binary.Hex;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
public class CodecUtils {
// byte[]转换为二进制字符串
public static String bytesToBinary(byte[] bytes) {
ArrayUtils.reverse(bytes);
return BinaryCodec.toAsciiString(bytes);
}
// 二进制字符串转换为byte[]
public static byte[] binaryToBytes(String binary) {
byte[] bytes = BinaryCodec.fromAscii(binary.toCharArray());
ArrayUtils.reverse(bytes);
return bytes;
}
// byte[]转换为16进制字符串
public static String bytesToHex(byte[] bytes) {
return Hex.encodeHexString(bytes);
}
// 16进制字符串转换为byte[]
public static byte[] hexToBytes(String hex) throws Exception {
return Hex.decodeHex(hex.toCharArray());
}
// byte[]转换为十进制字符串
public static String bytesToDecimal(byte[] bytes) {
return new BigInteger(1, bytes).toString();
}
// 十进制字符串转换为byte[]
public static byte[] decimalToBytes(String decimal) {
return new BigInteger(decimal).toByteArray();
}
// byte[]转换为ASCII码字符串
public static String bytesToAscii(byte[] bytes) {
return new String(bytes, StandardCharsets.US_ASCII);
}
// ASCII码字符串转换为byte[]
public static byte[] asciiToBytes(String ascii) {
return ascii.getBytes(StandardCharsets.US_ASCII);
}
}
第三步,单元测试