8 métodos uteis com expressões regulares em Java

Java fornece o pacote java.util.regex para correspondência de padrões com expressões regulares.
Uma expressão regular é uma sequência especial de caracteres que ajuda a igualar ou encontrar outras series ou conjuntos de series e estabelecer um padrão de entrada de dados ou validação, usando uma sintaxe especializada realizada em um padrão. Elas podem ser usadas para pesquisar, editar ou manipular texto e dados.
Eu confesso que demora um tempo para pegar o jeito e depois o seu tempo é muito bem aproveitado, não precisando escrever código estranhos para validações sendo que pode ser feito com o regex de forma simples, prática e funcional.

Abaixo segue um lista de exemplo de validações com as classes Pattern e Matcher que são as mais importantes do pacote regex do Java.

Alguns métodos reutilizam outros para se completar.

1 – Verificando caracteres de a-z  0-9  e acentos


public String verificaAceitaCaracteresAaZe0a9Acentos(String string) {
 String saida = "";
 Pattern pattern = Pattern
 .compile("[áàéèíìóòúùãç qwertyuiopasdfghjklzxcvbnm QWERTYÇUIOPASDFGHJKLZXCVBNM 0123456789]");
 Matcher matcher = pattern.matcher(string);
 while (matcher.find()) {
 saida += matcher.group();
 }
 return saida;
 }


2 – Verificando caracteres de a-z  0-9  e sem acentos


 public String verificaAceitaCaracteresAaZe0a9SemAcentos(String string) {
 String saida = "";
 Pattern pattern = Pattern
 .compile("[qwertyuiopasdfghjklzxcvbnm QWERTYUIOPASDFGHJKLZXCVBNM 0123456789]");
 Matcher matcher = pattern.matcher(string);
 while (matcher.find()) {
 saida += matcher.group();
 }
 return saida;
 }

3 – Verifica texto com maiúscula e minusculas


 public String verificaNome(String string) {
 String saida = "";
 string = retiraAcentos(string).toUpperCase();
 String string2 = retiraEspacosDuplicados(string);
 Pattern pattern = Pattern
 .compile("[qwertyuiopasdfghjklzxcvbnm QWERTYUIOPASDFGHJKLZXCVBNM]");
 Matcher matcher = pattern.matcher(string2);
 while (matcher.find()) {
 saida += matcher.group();
 }
 return retiraLetrasRepetidas(saida);
 }


4 – Retirando espaços duplicados

public String retiraEspacosDuplicados(String string) {
String patternStr = "\\s+";
String replaceStr = " ";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(string);
string = matcher.replaceAll(replaceStr);
return string;
}

5 – String sem espaços


 public String retornaStringSemEspacos(String string) {
 String patternStr = "\\s+";
 String replaceStr = "";
 Pattern pattern = Pattern.compile(patternStr);
 Matcher matcher = pattern.matcher(string);
 string = matcher.replaceAll(replaceStr);

 return string;
 }

6 – Verificando char repetido


 public String verificaCharRepetido(String string) {
 Pattern p = Pattern.compile("(\\w)\\1+");
 Matcher m = p.matcher(string);
 return m.group(1);
 }

7 – Retira letras repetidas

 public String retiraLetrasRepetidas(String s) {

 String aux = "";
 String string1 = "";
 List<String> lista = new ArrayList<String>();
 int cont = 0;
 for (int i = 0; i < s.length(); i++) {
 string1 = "" + s.charAt(i);
 if (string1.equalsIgnoreCase(aux)) {
 cont++;
 if (cont >= 3) {
 cont = 0;
 lista.add(retornaStringRepetida(s, aux));
 aux = "";

 }
 }
 aux = string1;
 }

 for (String ss : lista) {
 char c = ss.charAt(0);
 s = s.replace(ss, String.valueOf(c));

 }

 return s;
 }

8 – Verifica CPF


public String verificaCpf(String string) {
 String saida = "";
 Pattern pattern = Pattern.compile("[0123456789]");
 Matcher matcher = pattern.matcher(string);
 while (matcher.find()) {
 saida += matcher.group();
 }

 if (saida.equalsIgnoreCase("00000000191")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("00000000000")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("11111111111")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("22222222222")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("33333333333")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("44444444444")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("55555555555")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("66666666666")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("77777777777")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("88888888888")) {
 return "Invalido";
 } else if (saida.equalsIgnoreCase("99999999999")) {
 return "Invalido";
 } else {
 return saida;
 }


 }

Aprenda RESTful com Angular e Spring Frameworks
Angular 1.6 e Spring
Abra as portas para sua carreira de desenvolvedor web em Java com RESTful Spring e AngularJS.
648 alunosHoras do curso 40h Horas do curso certificado
Promoção R$ 100
1x de R$ 10,50
Arquitetura RESTful Spring Frameworks, BootStrap e Angular estão em alta no mercado nas empresas de desenvolvimento de software.
Inicio da web com JavaServer Pages
JavaServer Pages
A base de todos os frameworks Java para web são Servlet e JSP antes de tudo, conheça a base web Java.
1.456 alunosHoras do curso 20h Horas do curso certificado
Promoção R$ 60
6x de R$ 10,89
Curso de JSP. A base de todos os frameworks Java para web que usam a arquitetura MVC são as Servlets, sendo assim, o início do aprendizado se dá com JSP e Servlets Java.


Acesse
Cursos e Projetos
Java
Acesse
Outros Cursos
PHP MySQL Android
Acesse
Encomende um Projeto
Feito pra Você
Acesse
Tire as Dúvidas On-line
Consultor
Acesse
Aulas de Java só suas
Encomende Agora
Acesse
Dividindo Conhecimento
Posts e Tutoriais
Acesse
Sites e Parceiros
Associados
Acesse
Conheça os curso gratuitos
Grátis

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Instrutor Java Quer se tornar aluno VIP? CLIQUE AQUI!
Instrutor Java

Alex Fernando Egidio
Autor, criador e fundador do Java Avançado Cursos TI. Atua no mercado como desenvolvedor e engenheiro de sistemas em Java é apaixonado por desenvolvimento web em Java e pela “mágica” que seus frameworks trazem para o dia a dia de nós desenvolvedores.
Com mais de 10 anos de experiência ajuda programadores do Brasil todo a se tornarem profissionais.