0

6バイトを16進表現に変換するプログラムを開発しようとしています(00:65:36:21:A5:BCなど)

この方法で:

public static String toHexString(byte[] bytes) {
        StringBuilder sb = new StringBuilder(18);
        for (byte b : bytes) {
            if (sb.length() > 0)
                sb.append(':');
            sb.append(String.format("%02x", b));
        }

        return sb.toString();

    }

良いフォーマットを取得していますが、数字を2つずつ反転する必要があります。

私が入手したもの00:65:36:21:A5:BC

BC:A5:21:36:65:00を取得する必要があります

誰かがその最後のステップで私を助けることができますか?私は数字の各ペアを取り、その位置を逆にするのに苦労しています(最初にBCを置きますが、順序を変更せずに(CBのように)

前もって感謝します

G。

4

3 に答える 3

4

最後に追加するのではなく、最初に追加するには、次を使用します。

sb.insert(0, text);

これの代わりに:

sb.append(text);
于 2012-04-06T14:47:58.697 に答える
0

forの代わりに逆レギュラーを使用できますfor each

public static String toHexString(byte[] bytes) {
    StringBuilder sb = new StringBuilder(18);
    for (int i = bytes.length - 1; i >= 0; i--) {
        if (sb.length() > 0)
            sb.append(':');
        sb.append(String.format("%02x", bytes[i]));
    }

    return sb.toString();

}
于 2012-04-06T14:50:20.063 に答える
0

オフセット0で、appendメソッドの代わりにStringBuilderクラスのinsertメソッドを使用します。

あなたはここでもっと読むことができます。

于 2012-04-06T14:50:29.610 に答える