Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução do Desafio

import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        Pattern pattern = Pattern.compile("#[a-zA-Z]+");

        System.out.print("Digite o texto: ");
        String entrada = scanner.nextLine();

        Matcher matcher = pattern.matcher(entrada);

        ArrayList<String> hashtags = new ArrayList<>();

        while (matcher.find()) {
            hashtags.add(matcher.group());
        }

        if (hashtags.isEmpty()){
            System.out.println("Nenhuma hashtag encontrada");
        } else {
            System.out.println("Hashtags encontradas: " + String.join(", ",hashtags));
        }
        
        scanner.close();

    }

}


1 resposta

Bom dia, Pablo! Tranquilo?

Gostei demais da sua resposta, continue assim!

Mandou muito bem explorando o Pattern para expressões regulares com Java, aplicou de maneira eficiente o Matcher para localizar ocorrências e compreendeu como usar o ArrayList para armazenar resultados dinamicamente.

E um detalhe curioso para aprimorar seria permitir que hashtags com números também fossem reconhecidas. Exemplo:

Pattern pattern = Pattern.compile("#[a-zA-Z0-9]+");

Isso amplia a captura para casos como #java8 ou #html5.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Validação de entrada: garantir que o texto não seja nulo ou vazio antes de aplicar o regex.
  • Expressões regulares mais flexíveis: permitir caracteres especiais como _ ou - em hashtags.
  • Uso de métodos utilitários: encapsular a lógica de extração de hashtags em uma função reutilizável.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: o que você gostaria de praticar mais agora, criar expressões regulares mais avançadas para capturar diferentes padrões ou explorar coleções como Set e Map para organizar melhor os resultados?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!