Boa noite a todos.
Estou a criar um método que faz a validação de uma placa de carro cujo formato pode ser digitado em "aaa-0000" ou "aaa0000" só que estou com dois problemas o primeiro e o mais grave é um NullPointerException quando vou setar a placa, o outro é um erro de verificação que me retorna a mensagem placa inválida quando digito uma String " aaa - 0000 ".
private void autenticaPlaca(String texto) {
String textoRefator = texto.replaceAll(" ", "").trim();
String[] vetAux = textoRefator.split("-");
int contHifen = 0;
// System.out.println("teste " + textoRefator);
// System.out.println("teste substring somente letras " + textoRefator.substring(3));
// System.out.println("numeros convertidos "+Integer.valueOf(textoRefator.substring(3)));
// int x = Integer.valueOf(textoRefator.substring(3));
// int z = x+1;
// System.out.println("result numero "+ z);
// System.out.println("teste booleano "+Util.isNumeroValido(Integer.valueOf(vetAux[1])));
// System.out.println("teste refator "+textoRefator.substring(0, 3)+"-"+textoRefator.substring(3));
if (!texto.equals("")) {
for (int i = 0; i < textoRefator.length(); i++) {
if (textoRefator.charAt(i) == '-') {
contHifen++;
}
}
if (((textoRefator.contains("-") && textoRefator.length() == 8) && contHifen == 1)
&& (Util.isStringValida(vetAux[0]) && Util.isNumeroValido(Integer.valueOf(vetAux[1])))) {
System.out.println("registro concluído placa com - ");
veiculo.setPlaca(textoRefator);
jtf_placa.setText(textoRefator);
} else if (((!textoRefator.contains("-") && textoRefator.length() == 7) && contHifen == 0)
&& (Util.isStringValida(textoRefator.substring(0, 3)) && Util.isNumeroValido(Integer.valueOf(textoRefator.substring(3))))) {
System.out.println("registro concluído placa sem - ");
textoRefator = textoRefator.substring(0, 3) + "-" + textoRefator.substring(3);
veiculo.setPlaca(textoRefator); //NULLPOINTEREXCEPTION AQUI//
jtf_placa.setText(textoRefator);
} else {
JOptionPane.showMessageDialog(null, "Digite a placa no formato AAA0000 ou AAA-0000.");
jtf_placa.setText("");
}
}
}
package trabalho01;
public class Veiculo {
String placa;
public Veiculo() {
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
}
package trabalho01;
public class Util {
public static boolean isStringValida(String texto) {
if (texto.equals("0")
|| texto.contains("0")
|| texto.contains("1")
|| texto.contains("2")
|| texto.contains("3")
|| texto.contains("4")
|| texto.contains("5")
|| texto.contains("6")
|| texto.contains("7")
|| texto.contains("8")
|| texto.contains("9")
|| texto.contains("+")
|| texto.contains("-")
|| texto.contains("*")
|| texto.contains("/")
|| texto.contains("=")
|| texto.contains("_")
|| texto.contains("@")
|| texto.contains("#")
|| texto.contains("$")
|| texto.contains("%")
|| texto.contains("¨")
|| texto.contains("¬")
|| texto.contains("&")
|| texto.contains("(")
|| texto.contains(")")
|| texto.contains("§")
|| texto.contains("[")
|| texto.contains("]")
|| texto.contains("{")
|| texto.contains("}")
|| texto.contains("ª")
|| texto.contains("º")
|| texto.contains("/")
|| texto.contains("°")
|| texto.contains("?")
|| texto.contains(";")
|| texto.contains("'")
|| texto.contains("|")) {
return false;
} else {
return true;
}
}
public static boolean isNumeroValido(int numero) {
if (numero == 0
|| numero == 1
|| numero == 2
|| numero == 3
|| numero == 4
|| numero == 5
|| numero == 6
|| numero == 7
|| numero == 8
|| numero == 9) {
return true;
} else {
return false;
}
}
}