Was ist der beste Weg um sicherzustellen, dass ein String als int in Java gespeichert werden kann?

7

Ich mache eine webbasierte Anwendung und ich habe Textfelder, wo die Werte als Strings gespeichert werden. Das Problem ist, dass einige der Textfelder in Ints geparst werden und Sie viel größere Zahlen in Strings speichern können, als Sie in einem int können. Meine Frage ist, was ist der beste Weg, um sicherzustellen, dass die String-Nummer in ein int ohne Fehler analysiert werden kann.

    
user1423793 19.06.2012, 14:19
quelle

7 Antworten

11

Sie können dafür eine Try / Catch-Struktur verwenden.

%Vor%     
purtip31 19.06.2012, 14:21
quelle
5

Die Integer.parseInt-Methode überprüft den Bereich, wie er von javadoc erklärt wird:

%Vor%

Der richtige Weg ist also, die Zeichenfolge zu analysieren:

%Vor%     
Denys Séguret 19.06.2012 14:26
quelle
3

Parsen Sie die Zeichenfolge zu einem BigInteger anstelle einer regulären Ganzzahl. Dies kann viel höhere Werte enthalten.

%Vor%     
John Snow 19.06.2012 14:28
quelle
0

Sie könnten Ihren Code überprüfen:

  • Konvertiere den String in einen langen.
  • Vergleichen Sie den Wert long mit dem Wert max für eine ganze Zahl (eine Konstante innerhalb der Klasse Integer.)
  • Wenn der long-Wert größer ist als dieser Wert, wissen Sie, dass er nicht in einen int-Wert ohne Überlauf umgewandelt werden kann.
  • Wenn es kleiner oder gleich ist, wandle dein long in ein int.
  • um
BlackVegetable 19.06.2012 14:21
quelle
0

Parsen Sie die Zeichenfolge immer in try catch block. Wenn also eine Ausnahmebedingung oder ein Fehler aufgetreten ist, wissen Sie, dass bei der Syntaxanalyse ein Fehler aufgetreten ist.

    
Pramod Kumar 19.06.2012 14:22
quelle
0

Sie könnten Apache Commons Lang verwenden.

%Vor%

Die zweite Zahl ist der Standardwert, wenn der String kein numerischer Wert ist. Der erste Parameter ist der String, den Sie konvertieren möchten.

Für große Zahlen würde ich Folgendes tun

%Vor%     
mrswadge 19.06.2012 14:29
quelle
0

Was ist damit?

%Vor%     
Rostislav Matl 19.06.2012 14:30
quelle

Tags und Links