Wenn der String immer mit "0x" beginnt und hexadezimal:
String str = "0x9999999999999999";
BigInteger number = new BigInteger(str.substring(2));
besser, überprüfen, ob es mit "0x" beginnt
String str = "0x9999999999999999";
BigInteger number;
if (str.startsWith("0x")) {
number = new BigInteger(str.substring(2), 16);
} else {
// Error handling: throw NumberFormatException or something similar
// or try as decimal: number = new BigInteger(str);
}
Zur Ausgabe es als hexadezimal oder in eine hexadezimale Darstellung umwandeln:
System.out.printf("0x%x%n", number);
// or
String hex = String.format("0x%x", number);
Nicht sicher, warum es eine Down-Vote gibt, da das zweite Beispiel das OP nach einer Ausgabe fragt, @Carlos ist das einzige, das dies tut. (Er später gepostet) –
Dies berücksichtigt auch keine negativen Werte – TheRealNeo
@TheRealNeo können Sie ein Beispiel für einen negativen hexadezimalen Wert Sie meinen? –