Código fuente del artículo digital
Importar formato de número de Java . inputstream;
Importar texto Java. formato decimal;
Importar texto Java. >Computadora pública(){
}
/**
*
*Reparar el número de tarjeta de identificación de 15 residentes a 18 dígitos número.
*
* @param personIDCode
*
* @return
*/
Cadena estática pública fixPersonIDCode(String PersonIDCode)
{
Cadena retIDCode =
if(personIDCode == null | | personIDCode . trim(). length()! = 15) {
devolver personIDCode
}
id de cadena 17 = personidcode(0, 6) "19 "
personIDCode.substring(6, 15); // 15 reemplazo de tarjeta de identificación \'19\ '
// char[] code =
/ /{\'1\ ',\'0\ ',\'X\ ',\'9\ ',\'8\ ',\'7\ ',\'6\ ',\'5\ ', \'4\ ', \'3\ ', \ '2 \ ' };
/// 01 piezas.
código char[] = {'1','0','X','9','8','7','6','5','4',' 3 ', ' 2 ' }; // 11
int[] factor = { 0, 2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7 }; // 18;
int[]idcd = nuevo int[18]; int j;
int suma
int resto;
for(I = 1;i lt18;i)
{ p>
j = 17-I;
idcd[I]= entero . parse int(id 17 . substring(j, j 1));
} p>
}
p>
suma = 0;
for(I = 1;ilt18;i)
{
suma = suma idcd[I]* factor[I];
}
Restante = suma 11;
cadena último bit de verificación = cadena . valor de(código[resto]);
p>
ID de retorno 17 último bit de verificación;
}
/**
*
*La sentencia es un número de identificación de residente válido de 18 dígitos o 15 dígitos.
*
* @param identidadId
*: número de DNI de los residentes de 18 o 15 años.
*
* @ return: true: Número de identificación válido de un residente de 18 o 15 años.
*/
Booleano estático público isIdentityId(String IdentityId){
if (isEmpty(identityId))
Devuelve falso p>
p>
Pruebe {
if(id de identidad. longitud()= = 18){
ID de identidad de cadena 15 = subcadena de identidad (0. , 6)
identidadId.substring(8, 17);
//system . println("la identificación de identidad 15 es: "la identificación de identidad 15);
if (fixPersonIDCode(id de identidad 15).
equalsIgnoreCase(identityId)) {
Devuelve verdadero
} En caso contrario {
Devuelve falso
}
} else if(identity id . length()= = 15){
Prueba {
long . parse long(identity id);
Devuelve verdadero p>
p>
} catch (Excepción ex) {
Devuelve falso
}
} De lo contrario {
Devuelve falso p>
}
} captura (Excepción ex) {
devuelve falso
}
}
/**
*
*Determinar si es una cadena vacía""
*/
El booleano estático público está vacío (String sValue){
if (sValue == null)
Devuelve verdadero
Devuelve sValue.trim(). ¿Igual a (" ")? verdadero: falso;
}
Public static void main(String[] args) {
prueba {
system. println(fixPersonIDCode(" 650103760113073 ")); // tarjeta de identificación 15 a 18.
system . out . println(isIdentityId(" 650103760113073 ")); //No es un número de identificación válido de 15 dígitos.
} catch(Excepción e) {
e .printstacktrace();
}
}
. }