Montag, 4. Juni 2012, 20:10
Kurzbeschreibung
Dieses Snippet prüft einen String (Personalausweisnummer) auf Richtigkeit.
Beschreibung
|
Java-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public static boolean checkPattern(String aPattern, String aCode) {
return aCode.matches(aPattern);
}
public static boolean checkID(String aID) {
if (!checkPattern("[\\d]{10}[<]{1}[\\d]{7}[<]{1}[\\d]{7}[<]{1}[\\d]{1}", aID))
return false;
String[] subs = aID.split("<");
int[] wgt = { 7, 3, 1 };
int tmp = 0, com = 0, pos = 0;
for (int a = 0; a < subs.length - 1; a++, tmp = 0) {
for (int i = 0; i < subs[a].length() - 1; i++) {
tmp += ((subs[a].charAt(i) - 48) * wgt[i % 3]) % 10;
com += ((subs[a].charAt(i) - 48) * wgt[pos++ % 3]) % 10;
}
if (tmp % 10 != subs[a].charAt(subs[a].length() - 1) - 48)
return false;
com += ((tmp % 10) * wgt[pos++ % 3]) % 10;
}
if (com % 10 != subs[subs.length - 1].charAt(subs[subs.length - 1].length() - 1) - 48)
return false;
return true;
}
|
Gibt true zurück wenn der String korrekt ist, ansonsten false.
Funktioniert nicht mit dem neuen Personalausweis; Format des Strings aID: String1<String2<String3<String4.
Löschung beantragen
bedenklichen Inhalt melden