import java.util.Scanner;

public class Passwort_Check_sk {

    public static String checkLaenge(String passwort) {
        String ausgabe = "Passwort ist zu kurz";
        if (passwort.length() >= 20) {
            ausgabe = "Passwort ist sicher.";
        }
        return ausgabe;
    }

    public static String checkKleinBuchstaben(String passwort) {
        String ausgabe = "Es fehlen Kleinbuchstaben";
        if (passwort.matches(".*[a-z].*[a-z].*[a-z].*")) {
            ausgabe = "Passwort ist sicher.";
        }
        return ausgabe;
    }

    public static String checkGrossBuchstaben(String passwort) {
        String ausgabe = "Es fehlen Großbuchstaben";
        if (passwort.matches(".*[A-Z].*[A-Z].*[A-Z].*"))
            ausgabe = "Passwort ist sicher.";
        return ausgabe;
    }

    public static String checkZiffer(String passwort) {
        String ausgabe = "Es fehlen Ziffern";
        if (passwort.matches(".*[0-9].*[0-9].*[0-9].*"))
            ausgabe = "Passwort ist sicher.";
        return ausgabe;
    }

    public static String checkSonderZeichen(String passwort) {
        String ausgabe = "Es fehlen Sonderzeichen";
        if (passwort.matches(".*[!\\?\\$%&#@*+\\-=_.].*[!\\?\\$%&#@*+\\-=_.].*[!\\?\\$%&#@*+\\-=_.].*"))
            ausgabe = "Passwort ist sicher.";
        return ausgabe;
    }

    public static void main(String[] args) {
        String passwort = null;
        String checkResultat = "Passwort ist sicher.";
        boolean check = true;
        Scanner in = new Scanner(System.in);
        System.out.println("Geben Sie ein Passwort zur überprüfung ein:");

        passwort = in.nextLine();
        do {
            checkResultat = checkLaenge(passwort);
            if (checkResultat == "Passwort ist sicher.") {
                checkResultat = checkKleinBuchstaben(passwort);
            }
            if (checkResultat == "Passwort ist sicher.") {
                checkResultat = checkGrossBuchstaben(passwort);
            }
            if (checkResultat == "Passwort ist sicher.") {
                checkResultat = checkZiffer(passwort);
            }
            if (checkResultat == "Passwort ist sicher.") {
                checkResultat = checkSonderZeichen(passwort);
            }
            if (checkResultat != "Passwort ist sicher.") {
                check = false;
                System.out.println(checkResultat + "\n Geben Sie ein verbessertes Passwort zur überprüfung ein:");
                passwort = in.nextLine();
            } else {
                check = true;
            }
        } while (check == false);
        System.out.println(checkResultat);
        System.out.println("...und Tschüss");
        in.close();
    }

}
