El caso de uso se trata de la validación de patentes de automotores argentinos, hay dos formatos de patentes vigentes hoy en día acá, paso a explicarlas:
2 letras - 3 numeros - 2 letras (NUEVAS)
WW231EQ - ejemplo
3 letras - 3 numeros
JBN321
En el caso creo el objeto y le mando el parametro dominio (patente) como string al objeto, lo que debo hacer es validar si la patente cumple con algun formato correctamente. Esto es lo que hice:
Código:
public boolean validarDominio(String dominio) throws Exception{
boolean flag = true;
while(flag){
switch(dominio.length()){
case 6:
if(!(Funciones.esCadenaLetras(dominio.substring(0, 3))));
flag = false;
if(!(Funciones.esCadenaNros(dominio.substring(3, 6))));
flag = false;
break;
case 7:
if(!(Funciones.esCadenaLetras(dominio.substring(0, 2))));
flag = false;
if(!(Funciones.esCadenaNros(dominio.substring(2, 5))));
flag = false;
if(!(Funciones.esCadenaLetras(dominio.substring(5, 7))));
flag = false;
break;
}
break;
}
if(!flag)
throw new Exception("Dominio invalido");
return flag;
}
Por si quieren corroborar les dejo el set y el test.
Código:
public class Rodado {
private int idRodado;
private String dominio;
private int modelo;
private String marca;
public Rodado(int idRodado, String dominio, int modelo, String marca)
throws Exception{
this.idRodado = idRodado;
this.setDominio(dominio);
this.modelo = modelo;
this.marca = marca;
}
public void setDominio(String dominio) throws Exception {
if(validarDominio(dominio))
this.dominio = dominio;
}
Código:
package test;
import modelo.Rodado;
public class TestRodado {
public static void main(String[] args) {
try{
//DOMINIO JN332EW
Rodado rod_1 = new Rodado(1,"JN332EW",2011,"Ford");
System.out.println(rod_1.getIdRodado());
System.out.println(rod_1.getDominio());
System.out.println(rod_1.getModelo());
System.out.println(rod_1.getMarca());
} catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
Como pueden ver el dominio/patente es el segundo parametro. El problema aquí es que siempre salta la excepción del dominio inválido, aunque no esté inválido.
Tranquilos y sin apuros, a ver si le podemos encontrar la vuelta.
Aclaro que soy nuevo programando en Java, cualquier consejo es más que bienvenido.