Código fuente y algoritmos de Java
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<18;i++)
{
j = 17-I;
idcd[I]= entero . analizar int(id 17 . substring(j, j+1)); p>
suma = 0;
for(I = 1;i<18;i++)
{
suma = suma+idcd [I]* factor[I];
}
Restante = suma% 11;
último bit de verificación de cadena = valor de cadena de(código[resto ]);<. /p>
ID de retorno 17+último bit de verificación;
}
/**
*
*Juzga si es un número de identificación de residente válido de 18 o 15 dígitos.
*
* @param identidadId
*: número de DNI de los residentes de 18 o 15 años.
*
* @ return:true:Número de DNI válido de 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 out . println("identidad 15 es: "+identidad 15); p>
if(fixPersonIDCode(identity id 15).equalsIgnoreCase(identityId)) {
Devuelve verdadero
} En caso contrario {
Devuelve falso p>
}
} else if(identity id. length()= = 15){
Pruebe {
long parse long(identity. id);
Devuelve verdadero
} catch (Excepción ex) {
Devuelve falso
}
} De lo contrario {
Devolver falso
}
} catch (Excepción ex) {
Devolver falso
}
}
/**
*
* Determinar si es una cadena vacía ""
*/
El valor 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) {
Pruebe {
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();
}
}
. }