{"id":137,"date":"2007-11-08T12:14:02","date_gmt":"2007-11-08T11:14:02","guid":{"rendered":"http:\/\/blog.sahits.ch\/?p=137"},"modified":"2008-12-17T16:42:06","modified_gmt":"2008-12-17T15:42:06","slug":"uberprufen-esr-referenz-nummer","status":"publish","type":"post","link":"http:\/\/sahits.ch\/blog\/blog\/2007\/11\/08\/uberprufen-esr-referenz-nummer\/","title":{"rendered":"\u00dcberpr\u00fcfen ESR Referenz-Nummer"},"content":{"rendered":"<p>Mir wurde die Aufgabe gestellt, eine Pr\u00fcfroutine f\u00fcr die ESR-Referenz zu implementieren &#8211; in Java. Nach einem Fehlstart duch das Verwenden des falschen Algorithmus (Luhn Algorithmus zur Modulo 10 Pr\u00fcfung) habe ich den Richtigen gefunden. Jedoch nur f\u00fcr <a href=\"http:\/\/www.hosang.ch\/modulo10.htm\">C\/C++, Visual Basic<\/a> und <a href=\"http:\/\/www.developers-guide.net\/forums\/5431,modulo10-rekursiv\">PHP<\/a>. Auf dieser Basis war es mir dann m\u00f6glich eine Adaption f\u00fcr Java zu bilden<!--more-->:<br \/>\nMethode zum \u00dcberpr\u00fcfen der ESR Referenz. Als Eingabestring (Nummer) wird s2test verwendet. Dieser String wird forg\u00e4ngig \u00fcberpr\u00fcft, ob er in einem akzeptierbaren Format vorliegt.<br \/>\nDie Letzte Ziffer der Referenz stellt die Pr\u00fcfziffer dar.<br \/>\nDas Array tabelle geht auf Pr\u00fcfziffern-Matrix (definiert von der Post) zur\u00fcck und stellt daraus die erste Zeile dar: <\/p>\n<table border=\"1\">\n<tr>\n<td rowspan=\"2\">\u00dcber<\/td>\n<td colspan=\"10\" align=\"center\">Pr\u00fcfziffern<\/td>\n<td rowspan=\"2\">Pr\u00fcf<\/td>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<td>7<\/td>\n<td>8<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<td>9<\/td>\n<td>4<\/td>\n<td>6<\/td>\n<td>8<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<\/tr>\n<\/table>\n<p><code>public boolean checkModulo10Rekursiv(String number){<br \/>\n    int[] tabelle = {0,9,4,6,8,2,7,1,3,5};<br \/>\n    int next=0;<br \/>\n    for (int i=0;i&lt;number.length()-1;i++){<br \/>\n        char ch = number.charAt(i);<br \/>\n        int n = Character.digit(ch, 10);<br \/>\n        int index = (next+n)%10;<br \/>\n        next = tabelle[index];<br \/>\n    }<br \/>\n    int result = (10-next)%10;<br \/>\n    char ch = number.charAt(26);<br \/>\n    int n = Character.digit(ch, 10);<br \/>\n    return result==n;<br \/>\n}<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mir wurde die Aufgabe gestellt, eine Pr\u00fcfroutine f\u00fcr die ESR-Referenz zu implementieren &#8211; in Java. Nach einem Fehlstart duch das Verwenden des falschen Algorithmus (Luhn Algorithmus zur Modulo 10 Pr\u00fcfung) habe ich den Richtigen gefunden. Jedoch nur f\u00fcr C\/C++, Visual Basic und PHP. Auf dieser Basis war es mir dann m\u00f6glich eine Adaption f\u00fcr Java &hellip; <a href=\"http:\/\/sahits.ch\/blog\/blog\/2007\/11\/08\/uberprufen-esr-referenz-nummer\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201e\u00dcberpr\u00fcfen ESR Referenz-Nummer\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6],"tags":[99,68,301,69],"class_list":["post-137","post","type-post","status-publish","format-standard","hentry","category-java","category-programmieren","tag-de","tag-esr","tag-java","tag-plausibilisierung"],"_links":{"self":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/comments?post=137"}],"version-history":[{"count":2,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts\/137\/revisions"}],"predecessor-version":[{"id":305,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/posts\/137\/revisions\/305"}],"wp:attachment":[{"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/media?parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/categories?post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/sahits.ch\/blog\/wp-json\/wp\/v2\/tags?post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}