42 lines
1.7 KiB
Plaintext
42 lines
1.7 KiB
Plaintext
ich: schreibe eine methode zur Validierung einer 16-stellige Visa Kreditkartennummer nach Luhn-Algorithmus
|
|
KI: Hier ist eine Lösung, um die Methode zur Eingabe und Überprüfung der 16-stelligen Kreditkartennummer basierend auf
|
|
dem Luhn-Algorithmus in deiner Parkhaus-Software zu implementieren:
|
|
|
|
// Methode zur Überprüfung der 16-stelligen VISA-Kreditkartennummer
|
|
public static boolean pruefeKreditkartenNummer(String kreditkartenNummer) {
|
|
if (kreditkartenNummer.length() != 16 || !kreditkartenNummer.matches("\\d+")) {
|
|
return false; // Überprüft, ob die Nummer 16-stellig ist und nur Ziffern enthält
|
|
}
|
|
|
|
int sum = 0;
|
|
boolean alternate = false;
|
|
|
|
// Luhn-Algorithmus von rechts nach links anwenden
|
|
for (int i = kreditkartenNummer.length() - 1; i >= 0; i--) {
|
|
int n = Integer.parseInt(kreditkartenNummer.substring(i, i + 1));
|
|
if (alternate) {
|
|
n *= 2;
|
|
if (n > 9) {
|
|
n -= 9; // Wenn das Ergebnis größer als 9 ist, subtrahiere 9
|
|
}
|
|
}
|
|
sum += n;
|
|
alternate = !alternate;
|
|
}
|
|
|
|
// Wenn die Summe durch 10 teilbar ist, ist die Kreditkartennummer gültig
|
|
return (sum % 10 == 0);
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
// Beispiel für eine gültige 16-stellige VISA-Kreditkartennummer
|
|
String kreditkartenNummer = "4539148803436467";
|
|
|
|
if (pruefeKreditkartenNummer(kreditkartenNummer)) {
|
|
System.out.println("Die Kreditkartennummer ist gültig.");
|
|
} else {
|
|
System.out.println("Die Kreditkartennummer ist ungültig.");
|
|
}
|
|
}
|
|
|