Básicos de Expressões Regulares
Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 46 de 59.
Expressões Regulares (regex) são padrões usados para pesquisar e validar strings. No Java, usamos o matches() método para verificar se uma string corresponde a um padrão.
Verifique se uma string contém apenas dígitos:
String text = "12345";
boolean isMatch = text.matches("[0-9]+");Após executar o código acima, isMatch contém:
true
Verificar se uma string contém apenas letras:
String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");Após executar o código acima, isMatch contém:
true
Desafio
FácilCrie um método chamado validateInput que recebe dois argumentos:
- Uma String (
text) para validar - Uma String (
type) que especifica o tipo de validação
O método deve validar o texto com base nestes tipos:
- "number": deve conter apenas dígitos (0-9)
- "word": deve conter apenas letras (a-z ou A-Z)
- "email": deve conter @ e pelo menos um caractere antes dele
- "phone": deve conter exatamente 10 dígitos
As mensagens de retorno devem ser:
- Se text for null: retorne "Invalid input"
- Se type for inválido: retorne "Invalid type"
- Se a validação passar: retorne "Valid"
- Se a validação falhar: retorne "Invalid"
Folha de consulta
Expressões Regulares (regex) são padrões usados para pesquisar e validar strings. Em Java, use o método matches() para verificar se uma string corresponde a um padrão.
Verifique se uma string contém apenas dígitos:
String text = "12345";
boolean isMatch = text.matches("[0-9]+");Verifique se uma string contém apenas letras:
String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");Padrões regex comuns:
[0-9]+- um ou mais dígitos[a-zA-Z]+- uma ou mais letras[0-9]{10}- exatamente 10 dígitos.+@.+- contém @ com pelo menos um caractere antes dele
Experimente você mesmo
import java.util.Scanner;
public class Main {
public static String validateInput(String text, String type) {
// Escreva seu código aqui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String type = scanner.nextLine();
if (text.equals("null")) text = null;
System.out.println(validateInput(text, type));
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap5HashSet Parte 2
Mat. - União de HashSetsMat. - Interseção de HashSetMat. - Diferença de ConjuntosMat. - Diferença SimétricaSubconjuntos e SuperconjuntosIterando Sobre Conjuntos8Operações Avançadas com Strings
Básicos do StringBuilderIntrodução ao StringBufferBásicos de Expressões RegularesEmparelhamento de Padrões com RegexTokenizador de StringsFormatação Avançada de Strings3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras