publicstaticboolean checkPattern(String aPattern, String aCode) {
return aCode.matches(aPattern);
}
publicstaticboolean checkID(String aID) {
if (!checkPattern("[\\d]{10}[<]{1}[\\d]{7}[<]{1}[\\d]{7}[<]{1}[\\d]{1}", aID))
returnfalse;
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)
returnfalse;
com += ((tmp % 10) * wgt[pos++ % 3]) % 10;
}
if (com % 10 != subs[subs.length - 1].charAt(subs[subs.length - 1].length() - 1) - 48)
returnfalse;
returntrue;
}
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.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Localhost« (4. Juni 2012, 20:09)