Ergebnis 1 bis 8 von 8

Java Variabletypen erkennen

  1. #1 Zitieren
    General Avatar von Kirgo
    Registriert seit
    May 2009
    Ort
    An einem Ort wo Raum und Zeit Nebensachen sind.
    Beiträge
    3.747
    Hallo.

    Ich schreibe gerade ein Programm das einen Input lesen soll und damit rechnen soll.

    Es sollen nur Zahlen gehen. Sprich double.

    Jetzt ist die Sache, wie kann ich andere Inputs abfangen?
    Z.B. jemand gibt den Buchstaben "a" als Input. Das Programm soll nicht abstürzen, sondern es erkennen und eine Fehlermedlung abgeben.
    (Fehlermeldung ist nicht das Problem)

    Wie kann ich sowas erkennen lassen?
    Kirgo ist offline

  2. #2 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Du bekommst ja vermutlich einen String als Eingabe ... der lässt sich auch als Array von Char's betrachten. Dann kannst du jedes Element einzeln betrachten, mit der ASCII-Tabelle abgleichen obs ein gültiges Zeichen ist, wenn nicht, Fehler spucken, und wenn doch, bei der Gelegenheit gleich nach int, float oder double parsen (was immer du halt brauchst).
    Lookbehind ist offline

  3. #3 Zitieren
    General Avatar von Kirgo
    Registriert seit
    May 2009
    Ort
    An einem Ort wo Raum und Zeit Nebensachen sind.
    Beiträge
    3.747
    Hm. Ich krieg es nicht hin.

    Der Input ist String ja. Hier ist der Hauptteil des Codes.
    Es muss ja eigentlich nur vor der eigentlichen Handlung geprüft werden, aber ich kriege es einfach nicht implementiert.

    Code:
    private void ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                       
            
            String answer;
            entry=Double.parseDouble(Eingabefeld.getText());
            result1=entry*entry;
            answer=Double.toString(result1);
            AusgabefeldEins.setText(answer);
            result2=Math.sqrt(entry);
            answer=Double.toString(result2);
            AusgabefeldZwei.setText(answer);
        }
    Kirgo ist offline

  4. #4 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Und wo prüfst du da ob es sich um eine Zahl oder einen Buchstaben handelt?
    Lookbehind ist offline

  5. #5 Zitieren
    General Avatar von Kirgo
    Registriert seit
    May 2009
    Ort
    An einem Ort wo Raum und Zeit Nebensachen sind.
    Beiträge
    3.747
    Vergesst meine Frage. Ich habe einen wahrscheinlich umständlichen Umweg genommen.

    Statdessen muss ich jetzt wissen wie man eine if else Kaskade implementiert.

    Code:
    if(bla!=ble){
         print(bla);
    }
    else{
         if (bla!=ble2){
              print(bla)
          }
    }
    else{...
    Und so weiter. Aber das funktioniert nicht.
    Beim zweite else vermisst das Programm ein entsprechendes if.


    edit: Uuuund vergesst diese Frage auch. Ich glaube es gefunden zu haben.
    Kirgo ist offline Geändert von Kirgo (13.05.2016 um 13:36 Uhr)

  6. #6 Zitieren
    Ritter
    Registriert seit
    Feb 2003
    Beiträge
    1.554
    sog. "Arrow Code" sollte man vermeiden, weil der schlecht leserlich ist: Flattening Arrow Code
    Außerdem ist es sehr gruselig, die gesamte Logik in ein Event zu schmeißen.
    Whiz-zarD ist offline

  7. #7 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    sog. "Arrow Code" sollte man vermeiden, weil der schlecht leserlich ist: Flattening Arrow Code
    Außerdem ist es sehr gruselig, die gesamte Logik in ein Event zu schmeißen.
    Ich glaube um solche Feinheiten macht sich Kirgo noch keine gedanken. Wenn ich das so richtig sehe, fängt er grade erst an die Sprache zu lernen und beschäftigt sich da eher mit Grundlagen.
    Letztlich würd ich die Aufgabe auch ganz anders lösen. Das lässt sich ja recht kurz halten. Aber eben weil Kirgo das noch zu lernen scheint, versuche ich lieber Denkanstöße zu geben, als einfach ne fertige Lösung zu posten.
    Lookbehind ist offline

  8. #8 Zitieren
    Pretty Pink Pony Princess  Avatar von Multithread
    Registriert seit
    Jun 2010
    Ort
    Crystal Empire
    Beiträge
    11.228
    Bisschen spät, aber Ich gebe meinen Senf dennoch dazu ab.

    Ich würde Auf Double.parse(blah) setzen. Zusammen mit einem Try catch Block.
    Damit kannst du diese abfrage auf 2-3 Zeilen lösen. Du musst ja nichts nochmals schreiben was es schon gibt
    Auch als anfänger nicht.
    [Bild: AMD_Threadripper.png] Bei Hardware gibt es keine eigene Meinung, bei Hardware zählen nur die Fakten.


    Probleme mit der Haarpracht? Starres Haar ohne Glanz? TressFX schafft Abhilfe. Ja, TressFX verhilft auch Ihnen zu schönem und Geschmeidigen Haar.
    [Bild: i6tfHoa3ooSEraFH63.png]
    Multithread ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •