Komischer Text wird nach dem gewollten print text ausgespuckt.

triade

Aktives Mitglied
Java:
public class Anmeldung
{
    public static void main(String[] args)
    {
        byte pfalsch = 0;
        if(args[0].equals("Franz")&&args[1].equals("asdf1234"))
        {
            System.out.print("Der Benutzer"+args[0]+"ist jetzt angemeldet und dies nur nach "+pfalsch+" versuchen.");
        }
        else if(args[2].equals("Heiko")&&args[3].equals("theIncredibleHeik"))
        {
            System.out.print("Der Benutzer"+args[2]+"ist jetzt angemeldet und dies nur nach "+pfalsch+" versuchen.");
        }
        else
        {
            System.out.println("Die Benutzerdaten sind Falsch");
            pfalsch += 1;
        }
        
    }
}

//pfalsch += 1;

Hallo ich schreibe eine Datei wo man Name und Passwort eigeben muss, dann spuckt sie einen Text aus.
Diese besteht nur aus if und else usw. . Und an sich klappt sie allerdings nur für den Benutzer 1. Allerdings sowohl nach dem Text als bei Benutzer 1 und ohne sonst etwas anderes bei Benutzer zwei, wird das hier ausgespuckt:

"
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
at Anmeldung.main(Anmeldung.java:14)

"
Weiß wer was der bedeutet und wie ich den weg bekomme?
(Anmerkung:Bin noch Relativ neu bei Java)
Vielen dank schonmal im Voraus
 

KonradN

Super-Moderator
Mitarbeiter
Du versuchst auf das 3te und 4te Kommandozeilen-Argument zuzugreifen. Aber Du gibst doch nur 2 Parameter an.

Du willst also doch so wie beim ersten User das erste und zweite Argument prüfen.

Also auch wenn du den zweiten User prüfen willst - es sind ja die ersten zwei Parameter, die Du überprüfen willst.
 

triade

Aktives Mitglied
Du versuchst auf das 3te und 4te Kommandozeilen-Argument zuzugreifen. Aber Du gibst doch nur 2 Parameter an.

Du willst also doch so wie beim ersten User das erste und zweite Argument prüfen.

Also auch wenn du den zweiten User prüfen willst - es sind ja die ersten zwei Parameter, die Du überprüfen willst.
Hey, vielen dank dafür. Hast du vllt noch eine idee wie ich das mit dem versuchen machen kann das er ausspuckt wieviele falsche versuche man
hatte?
 

KonradN

Super-Moderator
Mitarbeiter
Hey, vielen dank dafür. Hast du vllt noch eine idee wie ich das mit dem versuchen machen kann das er ausspuckt wieviele falsche versuche man
hatte?
Das Problem ist, dass Du das immer nur bei jedem Start machst. Daher wird das Programm immer wieder neu gestartet.
Du müsstest das also irgendwo sichern, wo es auch nach Programmende verfügbar wäre. Du könntest es z.B. eine eine Datei schreiben oder in eine Datenbank.
 

triade

Aktives Mitglied
Das Problem ist, dass Du das immer nur bei jedem Start machst. Daher wird das Programm immer wieder neu gestartet.
Du müsstest das also irgendwo sichern, wo es auch nach Programmende verfügbar wäre. Du könntest es z.B. eine eine Datei schreiben oder in eine Datenbank.
Hab mir schon sowas gedacht. Weißt du wie ich so eine Datei schreiben kann oder weißt du wo ich es lernen kann (yt Video oder so)
 

triade

Aktives Mitglied

Oben