• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Java: pruefen ob String zu Integer parsen ueberhaupt möglich

Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
Moins.

Mir geht das so tierisch auf den Sack, wenn ich ein Programm testen will, ein paar Elemente eingebe und dann das Programm deshalb abstürzt weil ich bei der Eingabe im Menü aus versehen Enter drücke ohne vorher eine Zahl einzugeben.
Deshalb möchte ich in mein Menü eine Möglichkeit einbauen, ein String vorher zu prüfen, ob Integer.parseInt() ueberhaupt damit arbeiten kann. Leider scheint die wrapper-class dafür keine Methode parat zu haben.
Geht das irgendwie? Oder kann man dem Compiler irgendwie anders verklickern, dass er nicht gleich das ganze Prog abbrechen muss, nur weil er da nicht parsen kann?

Danke schonmal. :D


*edit:
hab das jetzt erstmal wie folgt gelöst ist aber noch recht unflexibel, weshalb ich trotzdem noch ne allgemeine Lösung suche.

Code:
        do {
            System.out.print("0=Exit 1=Speichern 2=Uebersetzen 3=neues Synonym : ");
            String blubb = din.readLine();
            if(!blubb.equals(""))
                eingabe = Integer.parseInt(blubb);
            else
                eingabe = 9999;
            switch (eingabe)
            {
                case 0: break;
                case 1:
                    speichern(din);
                    break;
                case 2:
                    uebersetzen(din);
                    break;
                case 3:
                    addSynonym(din);
                    break;
                default:
                    System.out.println("Falsche Eingabe. Hier noch ein Versuch: ");
            }
        } while (eingabe!=0);
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
prüfs halt mit regulären ausdrücken
hab jetzt hier aufm lappi keine ide drauf, spontan könnte es aber auch

NaN-Funktion, isNumber oder ähnliches geben
 

killerchicken_inaktiv

Guest
Bitte lern, mit Exceptions zu arbeiten, das ist so ziemlich sehr wichtig...

Hier ist allerdings auch eine Methode fuer dich, die das leistet:

Code:
private static boolean isNumeric(String str){
    try {
        Integer.parseInt(str);
        return true;
    } catch (NumberFormatException nfe) {
        return false;
    }
}

Gruss
Sebastian

PS: Das hier kannst auch benutzen ohne ne neue Methode zu bauen, einfach bissle umformen, dann tut es direkt das, was du willst
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Wäre allerdings zum testen praktisch, wenn du nicht mit einem "return false;" rausgehst, sondern die Exception entweder schmeisst (throw) oder über den Stacktrace ausgibst. Damit lassen sich Fehler leichter finden.
Exceptions kann man sich übrigens auch selbst bauen und muss nicht die vordefinierten nehmen.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
@killerchicken: geilomatico. funzt. danke!

das mit den exceptions kommt halt irgendwann noch in den Vorlesungen. Da bin ich noch nicht ganz so motiviert zu. bzw. ist java ja nich unser einziges Fach. ^^
 
Oben