ホームページ > Java > &#&チュートリアル > Java でバイト配列を 16 進表現に効率的に変換するにはどうすればよいですか?

Java でバイト配列を 16 進表現に効率的に変換するにはどうすればよいですか?

DDD
リリース: 2024-11-28 09:44:12
オリジナル
656 人が閲覧しました

How to Efficiently Convert a Byte Array to its Hexadecimal Representation in Java?

Java でバイト配列を 16 進数に変換する方法

バイト配列を 16 進表現に変換することは、さまざまなプログラミング シナリオで一般的な操作です。 Java では、この変換はさまざまな手法を使用して実現できます。

方法 1: 文字列連結と String.format() を使用する

簡単なアプローチの 1 つは、それぞれを反復処理することです。配列内のバイトを取得し、String.format() メソッドを使用して 16 進文字列表現に変換します。このメソッドは、必要に応じて先頭にゼロを付けた 2 桁の 16 進数としてバイトをフォーマットします。

byte[] bytes = {-1, 0, 1, 2, 3};
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
    sb.append(String.format("%02X ", b));
}
System.out.println(sb.toString());
ログイン後にコピー

このコードは、バイト配列の 16 進表現を「FF 00 01 02 03」として出力します。

方法 2: カスタム 16 進数変換を使用するFunction

または、バイト配列を 16 進文字列に直接変換するカスタム関数を作成することもできます。独自の関数を定義すると、書式設定をより詳細に制御できるようになり、変換プロセスを最適化できる可能性があります。関数の例を次に示します。

public static String bytesToHex(byte[] bytes) {
    StringBuilder sb = new StringBuilder();
    for (byte b : bytes) {
        sb.append(String.format("%02X", b & 0xFF));
    }
    return sb.toString();
}
ログイン後にコピー

この関数は、ビットごとの AND 演算子 (&) を使用して、バイトが符号なし整数として扱われるようにし、符号拡張の問題を取り除きます。

追加の考慮事項:

  • String.format() を使用する場合、フォーマット文字列 " X" は、必要に応じて先頭にゼロを付けた 2 桁の 16 進形式を指定します。
  • バイト配列に負のバイト値が含まれる場合は、特定の要件に基づいて符号拡張を処理する必要がある場合があります。
  • 文字列の連結は、通常、StringBuilder を使用して文字列を追加するよりも効率が低くなります。

以上がJava でバイト配列を 16 進表現に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート