Für loop-Eingang in BlueJ (Endlosschleife)

Arbeite ich an einem Projekt für die Schule und bin ratlos, wo ich in dem moment bin. Wenn ich mein Projekt, den VM zu sein scheint, stecken in einer Schleife und wird nicht geladen (Eine Konsole sollte pop-up, die mir erlaubt, um die Zeichen für die CombinationLock Klasse setDigit() - Methode). Ich glaube, es hat etwas zu tun mit meiner for-Schleife in meinem Interface.java Klasse. Wenn jemand könnte einen Blick und bringen mich in die richtige Richtung, das wäre sehr geschätzt. Dank einem Haufen!

Interface.java

import java.util.*;
public class Interface
{
    public static void main() {
        Scanner in = new Scanner(System.in);
        CombinationLock combo = new CombinationLock();    

        for(int i = 0; i < 3; i++) {
            String ltr = in.nextLine();
            combo.setDigit(ltr.charAt(0), i);
            System.out.println("Digit " + i + " has been set to " + ltr);
        }
    }
}

CombinationLock.java

public class CombinationLock
{
    String[] combo = new String[3];

    public CombinationLock() { }

    public boolean setDigit(char letter, int index) {
        if (Character.isDigit(letter)) {
            return false;
        }
        combo[index] = String.valueOf(letter);
        return true;
    }

    public boolean unlock(String combo) {
        if (combo.length() > 3) {
            return false; //Longer then it can be, not valid
        }

        char[] comboArray = combo.toCharArray();
        for (char c : comboArray) {
            if (Character.isDigit(c)) {
                return false; //Contains numbers, not valid
            }
        }

        boolean valid = true;
        for (int i = 0; i < 3; i++) {
            if (combo.charAt(i) != comboArray[i] && valid == true) {
                valid = false;
                break;
            }
        }

        return valid;
    }
}
  • Sieht aus wie Sie bekommen werden, sollte ein index-out-of-bounds-exception bei combo[index] = String.valueOf(letter); weil combo ist eine null-Länge-array.
  • Versuchen String[] combo = new String[3]; statt String[] combo = {};.
  • Ich habe die Datei bearbeitet, um diese änderungen wiederzugeben 🙂 @BheshGurung
  • Schauen Sie sich meine Antwort, es war nicht in der Lage zu finden, Ihre main-Methode, weil es die falsche Signatur.
  • Hinweis: Wenn Sie zum Start von der Kommandozeile (in der Regel) eine sehr hilfreiche Fehlermeldung, falls etwas schief geht.
Schreibe einen Kommentar