×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Dec 11, 2020 12:32 PM
Views: 4596
Tags: string
  1.  
  2. public class Main {
  3.  
  4.     public static void main(String[] args) {
  5.         var scanner = new java.util.Scanner(System.in);
  6.         String pw1, pw2;
  7.         boolean ok, identical;
  8.         do {
  9.             do {
  10.                 System.out.print("Passwort eingeben: ");
  11.                 pw1 = scanner.nextLine();
  12.                 ok = checkPassword(pw1);
  13.             } while (!ok);
  14.             System.out.print("Zur Kontrolle nochmals: ");
  15.             pw2 = scanner.nextLine();
  16.             identical = pw1.equals(pw2);
  17.             if (!identical) {
  18.                 System.out.println("Die Passwörter stimmen nicht überein!");
  19.             }
  20.         } while(!identical);
  21.  
  22.         System.out.println("OK. Ihr Passwort lautet: " + pw1);
  23.     }
  24.  
  25.     public static boolean checkPassword(String pw) {
  26.         // Passwortlänge überprüfen
  27.         if(pw.length() < 8) {
  28.             System.out.println("Passwort zu kurz.");
  29.             System.out.println("Bitte Eingabe wiederholen.");
  30.             return false;
  31.         }
  32.         // Schleife über alle Zeichen, merken, welche Arten von
  33.         // Zeichen es gibt
  34.         boolean hasUpper=false, hasLower=false,
  35.                 hasDigit=false, hasSpecial=false;
  36.         for (char c: pw.toCharArray()) {
  37.             if(Character.isUpperCase(c))
  38.                 hasUpper = true;
  39.             else if(Character.isLowerCase(c))
  40.                 hasLower = true;
  41.             else if(Character.isDigit(c))
  42.                 hasDigit = true;
  43.             else
  44.                 hasSpecial = true;
  45.         }
  46.         if(!hasUpper || !hasLower) {
  47.             System.out.println("Passwort muss Klein- und Großbuchstaben enthalten.");
  48.             System.out.println("Bitte Eingabe wiederholen.");
  49.             return false;
  50.         }
  51.         if(!hasDigit) {
  52.             System.out.println("Passwort muss eine Ziffer enthalten.");
  53.             System.out.println("Bitte Eingabe wiederholen.");
  54.             return false;
  55.         }
  56.         if(!hasSpecial) {
  57.             System.out.println("Passwort muss ein Sonderzeichen enthalten.");
  58.             System.out.println("Bitte Eingabe wiederholen.");
  59.             return false;
  60.         }
  61.         return true;
  62.     }
  63. }
  64.