Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Banana-Coding.com - Java Knuddels Emulator. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Localhost

Ehemaliger Supporter

  • »Localhost« ist der Autor dieses Themas

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

1

Montag, 4. Juni 2012, 20:02

Personalausweisnummer prüfen

Dieses Snippet prüft einen String (Personalausweisnummer) auf Richtigkeit.

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.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Localhost« (4. Juni 2012, 20:09)


2

Dienstag, 5. Juni 2012, 02:10

Überprüft der auch die Checksum?
Wäre sinnvol, sonst kann man die Nummer Faken.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Blizzard« (19. Februar 2013, 12:32)