String umwandeln und Fehler finden

Hallo,

ich habe folgendes Problem:

ich habe einen String und möchte diesen in eine Integervariable speichern.
Dies kann ich einfach mit
int zahl = Integer.valueOf(stringtext).intValue();
bewerkstelligen.

Nun das Problem: Wie kann ich die Fehler abfangen wenn der String eine Zahl enthält die größer ist als Integerwerte? Und wie fange ich Buchstaben oder Gleitkommazahlen ab?

Danke im voraus

Sebastian

Moien

Nun das Problem: Wie kann ich die Fehler abfangen wenn der
String eine Zahl enthält die größer ist als Integerwerte? Und
wie fange ich Buchstaben oder Gleitkommazahlen ab?

In all diesen Fällen schmeisst die Methode eine Exception: NumberFormatException. Die muss man per try-catch Block abfangen.

cu

Hallo Sebastian.

Um einen String in einen Integer zu verwandeln verwende ich folgendes:

String stringvalue = "1234";
int intvalue = Integer.parseInt(stringvalue);

Der Vorteil dabei ist, dass die Method eine NumberFormatException schmeißt, wenn der String nicht Integer-konform ist.

String stringvalue = "1234";
int intvalue;
try {
 intvalue = Integer.parseInt(stringvalue);
}
catch(NumberFormatException nfe) {
 // Fehlerbehandlung
}

Wie du dann den Fehler behandelst liegt bei dir.

Viel Erfolg noch.
Chris

Moien

Der Vorteil dabei ist, dass die Method eine
NumberFormatException schmeißt, wenn der String nicht
Integer-konform ist.

Und was genau ist der Unterschied zwischen der NumberFormatException von parseInt und valueOf ?

OK, die parseInt-Variante ist besser weil kein unnützes Integerobjekt erzeugt wird. Aber ansonsten … ?

cu

Danke
Danke für den Tipp :wink:

Werde ich nachher mal ausprobieren.

Habe aber noch eine Frage: Wenn der String eine Zahl + Leerzeichen enthält oder umgekehrt (Leerzeichen + Zahl) funktioniert das dann auch?

Hallo,

Habe aber noch eine Frage: Wenn der String eine Zahl +
Leerzeichen enthält oder umgekehrt (Leerzeichen + Zahl)
funktioniert das dann auch?

Nein, wirft auch eine Exception, aber du kannst die Leerzeichen vorher entfernen

int i = Integer.parseInt(inputtext.trim());

Gruß
Heavy

Und was genau ist der Unterschied zwischen der
NumberFormatException von parseInt und valueOf ?

Hast ja Recht. War beim Antworten halt nur etwas langsamer als du.

Nix für Ungut.

Chris