2017-09-24 76 views
1

我正在学习如何使用java的Formatter类。 我想将一个正字节转换为一个十六进制数字,然后将其解析为字符串,其中两位数字为使用Java StringBuilder格式化程序类

我的方法会是这个样子:

String toHexString(byte byteToConvert) { 
     StringBuilder hexBuilder = new StringBuilder(); 
     hexBuilder.append(Integer.toHexString(byteToConvert)); 
     return hexBuilder.toString(); 
} 

有没有一种方法能够格式化字符串(或StringBuilder的),以获得两个数字?

System.out.println(toHexString(127)); // Would like it to output "7f" 
System.out.println(toHexString(1)); // Would like it to output "01" 
+2

'StringBuilder'不是格式化 – MadProgrammer

+0

快速谷歌搜索的礼物[这个例子](https://stackoverflow.com/questions/9610254/string-format-and -hex-numbers-in-java)和[this example](https://stackoverflow.com/questions/5258415/how-to-get-hex-value-from-integer-in-java)作为可能的选项 – MadProgrammer

+0

Where你想使用Formatter类吗? –

回答

2

这里不需要StringBuilder。只需用String.format会做的伎俩:

String toHexString(byte byteToConvert) { 
    return String.format("%02x", byteToConvert); 
}