Ist dies der beste Weg, um zu konvertieren hex-String zu Byte?

Ist dies der beste Weg, um zu konvertieren hex-String zu Byte?
Oder kannst du mir eine kürzere/einfachere?

public static byte[] hexToBytes(String hex) {
return hexToBytes(hex.toCharArray());
}

public static byte[] hexToBytes(char[] hex) {
int length = hex.length / 2;
byte[] raw = new byte[length];
for (int i = 0; i < length; i++) {
    int high = Character.digit(hex[i * 2], 16);
    int low = Character.digit(hex[i * 2 + 1], 16);
    int value = (high << 4) | low;
    if (value > 127)
    value -= 256;
    raw[i] = (byte) value;
}
return raw;
}
  • Brito: Was sind Ihre Anforderungen? In meinem Buch "3ED" ist eine durchaus gültige "hexstring" noch Ihr Programm nicht funktioniert auf so ein string. Was ist mit "0x3ED"? (Ihr Programm nicht funktioniert, weder in diesem Fall später).
  • eigentlich ist es nicht meine <java2s.com/Code/Java/Development-Class/ConverthexToBytes.htm>. Aber, in meiner Anwendung, Ihre hex-Wert generiert, als "0x03ED" (der hex-Wert wird immer dann erzeugt, niemals direkt eingegeben). Vielen Dank für dieses vergessen, sowieso.
InformationsquelleAutor Tom Brito | 2010-04-15
Schreibe einen Kommentar