Si la chaîne commence toujours par "0x" et est hexadécimal:
String str = "0x9999999999999999";
BigInteger number = new BigInteger(str.substring(2));
mieux, vérifier si elle commence par "0x"
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);
}
Pour le sortir comme hexadécimal ou convertir en représentation hexadécimale:
System.out.printf("0x%x%n", number);
// or
String hex = String.format("0x%x", number);
Je ne sais pas pourquoi il y a un vote en baisse étant donné que le deuxième exemple produit l'OP demandé pour la sortie, @Carlos est le seul autre qui le fait. (Il a posté plus tard) –
Cela ne considère pas non plus les valeurs négatives – TheRealNeo
@TheRealNeo pouvez-vous donner un exemple d'une valeur hexadécimale négative que vous voulez dire? –