como melhorar este codigo , ele funciona porem mtos if else
private Boolean codigoPesquisaInvalido(String numeroString) {
Pattern pattern = null;
// P
if (numeroString.length() == 1) {
pattern = Pattern.compile("[A-Z]{1,1}");
} else
// PF
if (numeroString.length() == 2) {
pattern = Pattern.compile("[A-Z]{2,2}");
// PF/
} else if (numeroString.length() == 3) {
pattern = Pattern.compile("[A-Z]{2,2}/");
// PF/N
} else if (numeroString.length() == 4) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{1,1}");
// PF/NE
} else if (numeroString.length() == 5) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{2,2}");
} else
// PF/NEG
if (numeroString.length() == 6) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}");
} else
// PF/NEG/
if (numeroString.length() == 7) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}/");
// PF/NEG/0
} else if (numeroString.length() == 8) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{1,1}");
// PF/NEG/00
} else if (numeroString.length() == 9) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{2,2}");
// PF/NEG/000
} else if (numeroString.length() == 10) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{3,3}");
} else
// PF/NEG/0005
if (numeroString.length() == 11) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{4,4}");
} else
// PF/NEG/0005-
if (numeroString.length() == 12) {
pattern = Pattern.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{4,4}-");
// PF/NEG/0005-0
} else if (numeroString.length() == 13) {
pattern = Pattern
.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{4,4}-\\d{1,1}");
// PF/NEG/0005-00
} else if (numeroString.length() == 14) {
pattern = Pattern
.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{4,4}-\\d{2,2}");
} else
// Numero Completo PF/NEG/0035-001
if (numeroString.length() == 15) {
pattern = Pattern
.compile("[A-Z]{2,2}/[A-Z]{3,3}/\\d{4,4}-\\d{3,3}");
}
return pattern != null ? pattern.matcher(
numeroString).find() : true;
}