Há várias formas de fazermos validação, umas delas é com Regex, a qual é uma excelente opção em cenários que recebemos o input de dados no formato de texto e não conseguimos ter um alto controle sobre o recebimento do dado.
Abaixo, vou demostrar uma criar uma validação para um texto (uma String) com o objetivo de validar Ano/Modelo de um veículo.
Possíveis valores: 2015, 2015/2015
- [0-9] = caracteres de 0 a 9
- {4} = define que são 4 caracteres
- [/] = define o caracter “/”
- ? = define o caracteres antecedente como opcional
Regex:
[0-9]{4}[/]?([0-9]{4})?
- [0-9]{4} = 4 caracteres de 0 a 9 obrigatórios
- [/]? = Uma barra “/” opcional
- ([0-9]{4})? = 4 caracteres de 0 a 9 opcionais
Outra opção seria substituir os caracteres de 0 a 9 por \d+, que referencia apenas caracteres decimais, por exemplo:
[\\d+]{4}[/]?([\\d+]{4})?
Aplicando a Regex em uma String no Java:
private static final REGEX_ANO_MODELO = [\\d+]{4}[/]?([\\d+]{4})?; public boolean validarAnoModelo(String anoModelo) { return anoModelo.matches(REGEX_ANO_MODELO); }
matches: é um método na classe String que indica se essa seqüência de caracteres corresponde ou não a expressão regular fornecida.