Parkhaus2/Zahlungsabwicklung.java

36 lines
1.2 KiB
Java

import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Zahlungsabwicklung {
private static final String KREDITKARTEN_REGEX = "^\\d{16}$"; // Regex für eine 16-stellige Kreditkartennummer
private static final Pattern KREDITKARTEN_PATTERN = Pattern.compile(KREDITKARTEN_REGEX);
// Kreditkartenvalidierung
public static boolean validiereKreditkarte(String kreditkartennummer) {
Matcher matcher = KREDITKARTEN_PATTERN.matcher(kreditkartennummer);
return matcher.matches() && validierePruefziffer(kreditkartennummer);
}
// Validierung der Prüfziffer für eine 16-stellige Kreditkartennummer (Luhn-Algorithmus)
private static boolean validierePruefziffer(String kartennummer) {
int summe = 0;
boolean verdoppeln = false;
for (int i = kartennummer.length() - 1; i >= 0; i--) {
int ziffer = Character.getNumericValue(kartennummer.charAt(i));
if (verdoppeln) {
ziffer *= 2;
if (ziffer > 9) {
ziffer -= 9;
}
}
summe += ziffer;
verdoppeln = !verdoppeln;
}
return (summe % 10) == 0;
}
}