Java:将二进制字符串转换为十六进制字符

Nun*_*eli 3 java binary hex

我需要将二进制字符串转换为十六进制字符串,但我有一个问题.我通过这种方法将二进制字符串转换为十六进制字符串:

public static String binaryToHex(String bin){
   return Long.toHexString(Long.parseLong(bin,2));
}
Run Code Online (Sandbox Code Playgroud)

没关系!但我丢失了字符串左边的零.例如:

该方法返回此:123456789ABCDEF,但我想要返回此:

00000123456789ABCDEF

Run*_*odt 8

而不是Long.toHexString我将用于Long.parseLong解析值,然后String.format输出具有所需宽度的值(在您的示例中为21):


public static String binaryToHex(String bin) {
   return String.format("%21X", Long.parseLong(bin,2)) ;
}
Run Code Online (Sandbox Code Playgroud)