Input/Output Text einlesen lassen

FighterWar1

Mitglied
Hallo zusammen,
ich habe einen Timer erstellt, der zum Schluss eine nNachricht ausgeben soll.
Soweit so gut.
Jedoch denkt das Programm es müsste eine Zahl einlesen und gibt mir Fehlermeldungen aus.

Code:
"Exception in thread "main" java.lang.NumberFormatException: For input string: "test"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at Test.Zeitnachrichteingabe(Test.java:140)
    at Test.main(Test.java:39)"
Mein Programmcode im Anhang

Danke im Vorraus
 

Anhänge

Du versuchst sowohl die Zeit, als auch die Nachricht mit Integer.parseInt zu parsen, was bei der Nachricht "test" aus offensichtlichen Gründen nicht klappt.
 
Du tippst "test" ein, und versuchst innerhalb deines Programms ein Zahl draus zu machen. Lässt sich aber so aus "test" nicht machen, was sollte das auch für eine Zahl sein?
Ich tippe mal drauf, das deine Nachricht ein String und kein int sein sollte, also anders deklarieren und dann direkt zuweisen, nicht erst das parsen versuchen
 
Hab jetzt nochmal etwas geändert
Folgendes Problem:
In Zeile 137 kann der String "nachricht" ausgelesen werden und wird normal angezeigt.
In Zeile 189 geht dies allerdings nicht.
Es scheint so als ob mein Unterprogramm Alarm2()
den String nachricht nicht kennt...
kann mir jemand helfen ?
 

Anhänge

Um nochmal auf deine rekursiven Aufrufe von Alarm1 und Alarm2 zurückzukommen: wozu ist das gut ? So wie ich das sehe hast du keine Endebedingung da drin, d.h. dein Programm wird früher oder später den Stack-Overflow-Tod sterben.
 
Ich möchte den Timer auf dem Zweitmonitor laufen lassen und vielleicht bekomme ich es durch die Endlosschleife schneller mit 😀 .
wie würde der parameter befehl lauten ?+
bzw. wie übertrage ich den string als parameter ?
 
Das mit dem Parameter geht so:
Code:
                    System.out.println("==============================================");
                    Alarm2(nachricht);

Code:
    static void Alarm2(String nachricht){
       
        System.out.println("Timer beendet!");
        System.out.println("Nachricht:" + nachricht);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Alarm2(nachricht);
    }
 
Deswegen habe ich ja einen Delay von 1000ms eingebaut. Aber ich hab es nochmal überarbeitet. Die Alarmprogramme rufen sich jetzt nicht mehr gegenseitig auf!
 

Zurück
Oben