Ich bin auf der Suche nach einer JavaUtil-Klasse, wenn bereits verfügbar, um die Byte [] -Array in HexString mit Bindestrichen zu konvertieren. Ich schaute mich um und konnte für diese Art von Problem keinen finden.konvertieren Byte [] Array von MySQL in Hex mit Bindestrichen in Java?
Hier ist mein Szenario:
Byte [] Array in MySQL gespeichert ist, als here erläutert.
so, wenn ich
select HEX(id) as hexi, (
insert(
insert(
insert(
insert(
hex(
concat(substr(id,5,4),substr(id,3,2),
substr(id,1,2),substr(id,9,8))
),
9,0,'-'),
14,0,'-'),
19,0,'-'),
24,0,'-')
) as hex_dashes from my_table;
laufen ich
hexi hex_dashes
22E179345A5C11E69A64F9BBBC7C3AAC 5A5C11E6-7934-22E1-9A64-F9BBBC7C3AAC
Sie schnell merken, dass hex_dashes Version hexi Zeichenfolge neu geordnet wird (suchen Sie nach 22E1 nach dem 2. Strich in hex_dashes ist der Start Kette Wie diese Umlagerung durchgeführt wird, wird in dem oben verlinkten Artikel erläutert.
In der obigen Abfrage lautet der ID-Typ byte[]
.
Jetzt möchte ich eine Java-Util-Funktion, die Hexadezimal-Zeichenfolge angegebene Byte [] -Array zurückgeben.
Ich habe diese Methode, die Hexi, aber nicht Hex_string zurückgibt.
static final String HEXES = "ABCDEF";
public static String byteArrayToHexString(byte [] raw) {
if (raw == null) {
return null;
}
final StringBuilder hex = new StringBuilder(2 * raw.length);
for (final byte b : raw) {
hex.append(HEXES.charAt((b & 0xF0) >> 4))
.append(HEXES.charAt((b & 0x0F)));
}
return hex.toString();
}
Ich frage mich, ob es eine Möglichkeit, die ich hex mit Bindestrichen bekommen konnte.
Dank