Date/Time 中級

HexFormatで16進数文字列とバイト配列を相互変換する。

✕ Java 8
// Pad to 2 digits, uppercase
String hex = String.format(
    "%02X", byteValue);
// Parse hex string
int val = Integer.parseInt(
    "FF", 16);
✓ Java 17+
var hex = HexFormat.of()
    .withUpperCase();
String s = hex.toHexDigits(
    byteValue);
byte[] bytes =
    hex.parseHex("48656C6C6F");
このコードに問題がありますか? お知らせください。
📐

双方向変換

1つのAPIでバイト→16進数・16進数→バイトの変換が可能。

🔧

設定可能

区切り文字、プレフィックス、サフィックス、大文字・小文字を設定できます。

📦

配列サポート

バイト配列全体を一度にエンコード・デコードできます。

旧来のアプローチ
手動の16進数変換
モダンなアプローチ
HexFormat
JDKバージョン
17
難易度
中級
HexFormat
利用可能

JDK 17 LTS(2021年9月)以降、広く利用可能

HexFormatはバイト・int・配列の16進エンコード・デコードを双方向に提供します。区切り文字、プレフィックス、サフィックス、大文字・小文字の設定が可能で、手動のフォーマットや解析は不要です。

共有 𝕏 🦋 in