Código de Java - Validador de CBU

sin imagen de perfil

Validador de CBUgráfica de visualizaciones


Java

Publicado el 1 de Octubre del 2015 por Facundo
7.855 visualizaciones desde el 1 de Octubre del 2015
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
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 1 de Octubre del 2015gráfica de visualizaciones de la versión: 1.0
7.856 visualizaciones desde el 1 de Octubre del 2015
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 (3)

Pablo
16 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
Gracias.
Tiene un bug. Cambiá:
<-- diferencia = 10 - (suma % 10);
por
--> diferencia = (10 - (suma % 10)) % 10;

Fallaba en CBUs terminados en 0. O con códigos de banco terminados en cero.
Responder
Juana
21 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
Hola, muchas gracias por compartirlo. Pregunta de ignorante: como ejecuto esto desde un php o html? muchas gracias!
Responder
22 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
Pero tu app usa actualmente código java? en ese caso podes tenerlo en un servlet java para usarlo del html. Sino, deberías buscar de pasarlo todo al equivalente en php para no sumar código java en vano si es que no usan
Responder

Comentar la versión: 1.0

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

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3291