Eine kurze Frage zu JAVA

  • Hey, ich bin gerade ein bisschen dabei mit Java was rumzuprobieren und weiß im Moment nicht weiter. Sollte für jemanden der sich damit ein bisschen aukennt eigentlich kein großes Poblem sein denke ich mal.
    Ich würde gerne wissen, warum mein " Programm " das ich noch anhänge nicht funktioniert. Bzw. was ich falsch gemacht habe.
    Die Simple input dateien befinden sich schon mit im richtigen Ordner. Wäre nett wenn mir einer helfen könnte.


    Folgende Fehlermeldung kommt immer beim compalieren mit der ich nichts anfangen kann. Er verlangt ja einen Wert vom Typ int aber das habe ich doch eigentlich zuvor auch korrekt angegeben oder nicht ?

    Code
    ifschleife.java:8: incompatible types
    found   : java.lang.String
    required: int
                    zahl = input.nextLine();
                                         ^
    1 error
  • Input.nextLine() liefert einen String. Du musst den String erst mal in eine Variable packen und dann mit Integer.parseInt(stringvariable) daraus ein Integer machen.

    Beispiel:

    Code
    String eingabe = "";
    eingabe = Input.nextLine();
    
    
    zahl = Integer.parseInt(eingabe);

    Es kann passieren das du eine NumberFormatException bekommst. Die solltest du mit einem try/catch Block abfangen. Diese Exception wird geworfen, wenn du beispielsweise einen Buchstaben anstatt einer Zahl eingibst.

    Code
    try{
        String eingabe = "";
        eingabe = Input.nextLine();
    
    
        zahl = Integer.parseInt(eingabe);
    }catch(NumberFormatException e){
        System.out.println("Bitte nur Zahlen eingeben!");
    }

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • Hmm ich verstehe das nicht so ganz. Weil in meinem Quersummenprogramm, dass schon läuft habe ich es doch genauso gemacht oder nicht ?
    Siehe unten :

  • Hm das dürfte so auch nicht funktionieren. Ich kenn jetzt die Klasse SimpleInput nicht. Von daher kann ich dir nicht sagen warum das andere geht.

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • wir haben das immer mit dem java scanner gemacht
    der is ja schon in java direkt drin
    musste halt am anfang nur importieren ^^

    (denk ma er will das er die eingegeben zahl einliest)


    "Eine Frau macht niemals einen Mann zum Narren.
    Sie sitzt bloß dabei und sieht zu, wie er sich selbst dazu macht."

  • Doch, funktioniert. Deshalb wundert es mich auch, dass es beim anderen "Programm" nicht läuft. Kann dir zur simple imnupt class auch nicht viel sagen. Die habe ich irgendwann mal von meinen Tutoren bekommen. Soweit ich weiß dient sie aber dazu um Zahlen oder Texte einzugeben.

    Dank dir schonmal für deine Antworten. Ich schaue mir mal an was sich damit schönes machen lässt :)

  • Danke Smals, das hat funktioniert. :)

    Ich habe die Zeile " zahl = input.nextLine(); " zu " zahl = input.nextInt(); " geändert. Jetzt läuft alles ;)
    Allerdings weiß ich nicht warum das Quersummenprogramm auch mit input.nextLine anstatt mit .nextInt läuft. Kannst du mir das vielleicht erklären ? Ist in meinen Augen ja eigentlich genau das Selbe oder etwa nicht ?

  • Das ist mir ein totales Rätsel. Eigentlich müsste der compiler dir das genauso ankreiden. Java ist typisiert und wenn die Typen nicht passen dann sollte er meckern. Bis du dir sicher das dein anderes Programm compiliert und durchläuft?

    Kann es vielleicht sein das du verschiedene Versionen von SimpleInput benutzt?

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • Ja es funktionier komischerweiße einwandfrei. Ich habe es vorher extra nochmal ausprobiert.
    Sind auch beides die gleichen Versionen von simpleinput.


    OH... danke. Ich habe gerade festgestellt, dass ich mehrere Quersummenprogramme gespeichert habe. Ich habe immer das richtige compaliert mir aber das falsche, nicht funktionierende dazu im Editor angeschaut -.-
    Mein Fehler.... das obige Programm funktioniert so auch nicht. ^^ sorry.

  • Hm lol SimpleInput sehe ich zum ersten mal :omg:

    gibts eigentlich eine Stream Klasse die automatisch ein gewisses Zeichen escaped bzw dann wieder "weg-escaped"?
    (muss beliebige String tokens über netzwerk schicken, da brauchts seperators (ka wie man das auf deutsch nennt) (zb { "A", "tokenized", "String"} -> "A tokenized String" und dann ' ' als seperator), aber die können ja auch in so nem token vorkommen (zB {"A tokenized", "String"} ) )
    hm cool zu erklären :x

  • stringvar.split(" ") macht aus ("hallo welt wie geht es dir") ein Stringarray: {"hallo", "welt", "wie","geht","es","dir"}. Ansonsten halt reguläre Ausdrücke wenn es komplexer ist.

    edit: ah okay falsch verstanden ... hm für sowas geht dann doch wohl nur reguläre Ausdrücke oder eigenen Tokenizer schreiben ^^

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!