Was macht Integer.parseInt?

2 Antworten

Gehen wir das mal durch...

1) args bezieht sich hierbei vermutlich auf den Standard Parameter Name in der main function (Ob der Code in der main Methode steht sehen wir ja leider nicht).

if (args.length > 0) {
    String parameter = args[0];
    int zahl = Integer.parseInt(parameter);
    if (zahl % 7 == 0) {
        System.out.println("Glück gehabt!");
    } else {
        System.out.println("Pech gehabt");
    }
} else {
    System.err.println("Keine Zahl übergeben.");
}

Das args.length > 0 --> Schaut im Endeffekt nur ob der Methode überhaupt ein Parameter überliefert wurde. Falls, dem nicht so ist, wird eine Fehlermeldung ausgegeben.

2) String parameter = args[0]; --> Hierbei wird ein string erstellt und diesem wird der Wert des ersten überlieferten parameters mitgeteilt (0, weil arrays immer bei 0 anfangen)

3) int zahl = Integer.parseInt(parameter); --> Hier wird einfach nur versucht den vorher festgelegten string in einen Integer zu konvertieren

Wie man dem ganzen nun eine Zahl mitgibt?

Da hier davon auszugehen ist, dass es sich um die main Methode handelt müsstest du das Programm via cmd starten und nach dem Pfad der Datei eine Zahl als Argument mitliefern.

Woher ich das weiß:Hobby

menschRaus 
Beitragsersteller
 22.07.2021, 13:15

Danke erstmal! :)

Wie genau mache ich das mit cmd?
Also ich weiß wie ich cmd aufrufen kann, aich wie ich dort "in" meine JavaDatei gelange, aber was gebe ich bei cmd explizit ein, um dem ganzen nun eine Zahl zu geben?

0
lostcsharp  22.07.2021, 13:15
@menschRaus

In dem Ordner wo auch deine Datei ist die Konsole öffnen und folgendes eingeben:

java deine_app.jar zahl

1

Dein Code steht sicherlich innerhalb der main-Methode.

Bei Start einer Java-Anwendung kann man ihr noch Konsolenparameter mitgeben.

Beispiel (Aufruf über die Konsole):

java YourApplication 1 2 3

Die Werte 1, 2 und 3 werden daraufhin in einem Array gespeichert (args), welches der main-Methode überreicht wird.

public static void main(String[] args) {

Da du aber nicht sicher davon ausgehen kannst, dass jeder Aufrufer deiner Anwendung ihr auch Parameter mitgibt, solltest du erst prüfen, ob das Array tatsächlich Einträge enthält.

if (args.length > 0) {

Wenn dem nicht der Fall ist, hast du auch keine Werte, mit denen du arbeiten könntest.

Bei deiner Anwendung geht man davon aus, dass dem Programm ein Parameter mitgegeben werden könnte. Der wird dann hier:

String parameter = args[0];

nochmal in einer eigenen Variable abgespeichert. Entscheidend für den nachfolgenden Schritt ist, dass mitgelieferte Parameter immer vom Typ String sind. Strings können halt einen größeren Wertebereich aufnehmen (alle möglichen Zeichen, so auch Ziffern), es gibt eine größere Flexibilität.

Da der Parameter in deiner Anwendung als Zahl weiterverarbeitet werden soll, muss der String erst in einen numerischen Typ konvertiert werden. Das macht parseInt.

int zahl = Integer.parseInt(parameter);