Derzeit wird nur INVALID_CHECKSUM ausgegeben, obwohl auch noch INVALID_FORMAT ausgegeben werden müsste; das liegt an meiner if else Kontruktion ich bräuchte so etwas wie ein UND dazwischen.
Zum Beispiel
Zum Beispiel
Java:
// if ( calcChecksum( numbers ) != (Pruefziffer.charAt(0) -'0') )
// return IDCardCheckResult.INVALID_CHECKSUM;
//
// >UND<
//
//if ( mrz == null )
// throw new NullPointerException("Machine Readable Zone ist null");
if ( calcChecksum( numbers ) != (Pruefziffer.charAt(0) -'0') )
return IDCardCheckResult.INVALID_CHECKSUM;
if ( mrz == null )
throw new NullPointerException("Machine Readable Zone ist null");
else if ( mrz.length != 2 && mrz.length != 3 )
throw new IllegalArgumentException("falsche Elementanzahl");
else if ( mrz.length == 3 ){
if( validateIDCardline1( mrz[0] ) != true ||
validateIDCardline2( mrz[1] ) != true ||
validateIDCardline3( mrz[2] ) != true )
return IDCardCheckResult.INVALID_FORMAT;}
else if ( mrz.length == 2 ){
if( matchesline1( mrz[0] ) != true || matchesline2( mrz[1] ) != true )
return IDCardCheckResult.INVALID_FORMAT;}
Zuletzt bearbeitet von einem Moderator: