Código de Java - Validador de CBU

Validador de CBUgráfica de visualizaciones


Java

Actualizado el 02 de Octubre del 2015 por Facundo (Creado el 01 de Octubre del 2015)
1.115 visualizaciones desde el 01 de Octubre del 2015. Una media de 21 por semana
Bueno, tenia que validar en el laburo el ingreso de CBU y note que en la web era difícil conseguirlo ya hecho en Java, había en otros lenguajes pero no en Java, así que decidí compartirlo. Quizás se pueda pulir un poco más, pero hasta acá a mi me servía barbaro. saludos

Requerimientos

java 1.6+

1.0

Actualizado el 02 de Octubre del 2015 (Creado el 01 de Octubre del 2015)gráfica de visualizaciones de la versión: 1.0
1.116 visualizaciones desde el 01 de Octubre del 2015. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class CBUUtils {
 
	public static void main(String[] args){
		String cbu1= "2810590940090418135201"; //Invalido
		String cbu2= "2850590940090418135211"; //Invalido
		String cbu3= "28505909400904181352012"; //Invalido
		String cbu4= "2850590940090418135201"; //Valido
		testCbu(cbu1);
		testCbu(cbu2);
		testCbu(cbu3);
		testCbu(cbu4);
	}
 
	private static void testCbu(String cbu){
		if(verifyCBU(cbu))
			System.out.println("CBU '"+cbu+"' Valido");
		else
			System.out.println("CBU '"+cbu+"' Invalido");
	}
 
	public static Boolean verifyCBU(String cbu){
		return validarLargoCBU(cbu) && validarCodigoBanco(cbu.substring(0,8)) && validarCuenta(cbu.substring(8,22));
	}
 
	private static Boolean validarLargoCBU(String cbu) {
		if (cbu.length() != 22)
			return false;
		return true;
	}
 
	private static Boolean validarCodigoBanco(String codigo) {
		Integer suma;
		Integer diferencia;
		if (codigo.length() != 8)
			 return false;
		char[] banco = codigo.substring(0,3).toCharArray();
		Integer digitoVerificador1 = charToInt(codigo.toCharArray()[3]);
		char[] sucursal = codigo.substring(4,7).toCharArray();
		Integer digitoVerificador2 = charToInt(codigo.toCharArray()[7]);
		suma = charToInt(banco[0]) * 7 + charToInt(banco[1]) * 1 + charToInt(banco[2]) * 3 + digitoVerificador1 * 9 + charToInt(sucursal[0]) * 7 + charToInt(sucursal[1]) * 1 + charToInt(sucursal[2]) * 3;
		diferencia = 10 - (suma % 10);
		return diferencia == digitoVerificador2;
	}
 
	private static Boolean validarCuenta(String cuenta) {
		if(cuenta.length()!=14)
			return false;
		Integer digitoVerificador = charToInt(cuenta.toCharArray()[13]);
		Integer suma;
		Integer diferencia;
		char[] cuentaArray = cuenta.toCharArray();
		suma = charToInt(cuentaArray[0]) * 3 + charToInt(cuentaArray[1]) * 9 + charToInt(cuentaArray[2]) * 7
				+ charToInt(cuentaArray[3]) * 1 + charToInt(cuentaArray[4]) * 3 + charToInt(cuentaArray[5]) * 9
				+ charToInt(cuentaArray[6]) * 7 + charToInt(cuentaArray[7]) * 1 + charToInt(cuentaArray[8]) * 3
				+ charToInt(cuentaArray[9]) * 9 + charToInt(cuentaArray[10]) * 7 + charToInt(cuentaArray[11]) * 1
				+ charToInt(cuentaArray[12]) * 3;
		 diferencia = 10 - (suma % 10);
		 return diferencia == digitoVerificador;
	}
 
	private static Integer charToInt(char ch){
		return Integer.parseInt(String.valueOf(ch));
	}
 
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3291