2013-02-20 14 views
5

die folgende Zeichenfolge Gegeben:Wie kann ich eine große Zeichenfolge in Integer in Java konvertieren?

3132333435363738396162636465666768696a6b6c6d6e6f70 

ich konvertiert die Zeichenfolge wollen verhexen und jetzt habe ich es als Hex nicht einen String schreiben Datei. Ich habe versucht, es in int zu konvertieren, aber Integer.parseInt konvertiert nur bis zu 4 und wenn darüber hinaus gehen würde es Fehler bereits geben.

+7

Was hat das mit Schwung zu tun? –

Antwort

1

Verwenden Sie BigInteger, einer der Konstruktoren nimmt eine Radix.

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

Haben Sie versucht, die BigInteger constructor taking a string and a radix?

BigInteger value = new BigInteger(hex, 16); 

Beispielcode:

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... 
    } 
} 

Ausgang:

308808885829455478403317837970537433512288994552567292653424 
+0

Ich muss Datei schreiben wie es ist. – user2090151

+0

@ user2090151: Ich habe keine Ahnung, was du damit meinst. Es ist eine Nummer - es gibt kein "wie es ist". Sie müssen es irgendwie darstellen - als Dezimalzahl oder was auch immer. Du hast gefragt, wie man es als Zahl analysieren soll - ich habe dir gezeigt, wie man das macht. Wenn Sie die hexadezimale Zeichenkette nur in ein * byte * -Array analysieren wollen, ist das eine ganz andere Sache, und Sie sollten darum gebeten haben. (Stellen Sie keine neue Frage - es gibt * viele * hex-Parsing-Fragen in Stack Overflow.) –

1

Versuchen:

new BigInteger("3132333435363738396162636465666768696a6b6c6d6e6f70", 16) 
Verwandte Themen