2013-02-20 17 views
5

Data la seguente stringa:Come posso convertire una stringa grande in numero intero in java?

3132333435363738396162636465666768696a6b6c6d6e6f70 

ho convertito la stringa esadecimale e ora voglio archiviare scriverlo come esadecimale non è una stringa. Ho provato a convertirlo in int ma Integer.parseInt converte solo fino a 4 e se si va oltre, si darebbe già un errore.

+7

Che cosa ha a che fare con swing? –

risposta

1

Utilizzare BigInteger, uno dei costruttori accetta una radice.

BigInteger value = new BigInteger(hexString, 16); 
8

Hai provato il BigInteger constructor taking a string and a radix?

BigInteger value = new BigInteger(hex, 16); 

codice di esempio:

import java.math.BigInteger; 

public class Test { 

    public static void main(String[] args) { 
     String hex = "3132333435363738396162636465666768696a6b6c6d6e6f70"; 
     BigInteger number = new BigInteger(hex , 16); 
     System.out.println(number); // As decimal... 
    } 
} 

uscita:

308808885829455478403317837970537433512288994552567292653424 
+0

ho bisogno di file scrivere così com'è. – user2090151

+0

@ user2090151: Non ho idea di cosa intendi con questo. È un numero - non esiste "così com'è". Devi rappresentarlo in qualche modo - come numero decimale o altro. Hai chiesto come analizzarlo come un numero: ti ho mostrato come farlo. Se vuoi solo analizzare la stringa esadecimale in un array * byte *, è una questione completamente diversa, e avresti dovuto chiedergli di iniziare. (Non fare una nuova domanda - ci sono * molte * domande di analisi esadecimale su Stack Overflow.) –

1

Prova:

new BigInteger("3132333435363738396162636465666768696a6b6c6d6e6f70", 16) 
Problemi correlati