1
resposta

[Projeto] .

import java.util.*;
import java.util.Optional;

public class TodosExercicios {

    public static void main(String[] args) {
        // Exercício 1
        List<String> listaStrings = Arrays.asList("10", "abc", "20", "30x");
        List<Integer> numerosValidos = filtrarNumeros(listaStrings);
        System.out.println("1. Números válidos: " + numerosValidos);

        // Exercício 2
        System.out.println("2. Quadrado de 5: " + processaNumero(Optional.of(5)));
        System.out.println("   Quadrado de -3: " + processaNumero(Optional.of(-3)));
        System.out.println("   Quadrado de vazio: " + processaNumero(Optional.empty()));

        // Exercício 3
        System.out.println("3. Nomes: " + obterPrimeiroEUltimoNome("  João Carlos Silva   "));
        System.out.println("   Nomes: " + obterPrimeiroEUltimoNome("Maria"));

        // Exercício 4
        System.out.println("4. Palíndromo: " + ehPalindromo("socorram me subi no onibus em marrocos"));
        System.out.println("   Palíndromo: " + ehPalindromo("Java"));

        // Exercício 5
        List<String> emails = Arrays.asList("TESTE@EXEMPLO.COM", "exemplo@Java.com ", "Usuario@teste.Com");
        System.out.println("5. Emails convertidos: " + converterEmails(emails));

        // Exercício 6
        System.out.println("6. Dias em Fevereiro: " + Mes.FEVEREIRO.getDias());
        System.out.println("   Dias em Julho: " + Mes.JULHO.getDias());

        // Exercício 7
        System.out.println("7. 100 reais em dólar: " + Moeda.DOLAR.converter(100));
        System.out.println("   100 reais em euro: " + Moeda.EURO.converter(100));

        // Exercício 8
        System.out.println("8. Código 404: " + CodigoErro.NOT_FOUND.getCodigo() + " - " + CodigoErro.NOT_FOUND.getDescricao());
        System.out.println("   Código 400: " + CodigoErro.BAD_REQUEST.getCodigo() + " - " + CodigoErro.BAD_REQUEST.getDescricao());
    }

    // Exercício 1
    public static List<Integer> filtrarNumeros(List<String> lista) {
        List<Integer> numeros = new ArrayList<>();
        for (String item : lista) {
            try {
                numeros.add(Integer.parseInt(item));
            } catch (NumberFormatException e) {
                // Ignora se não for número
            }
        }
        return numeros;
    }

    // Exercício 2
    public static Optional<Integer> processaNumero(Optional<Integer> num) {
        return num.filter(n -> n > 0).map(n -> n * n);
    }

    // Exercício 3
    public static String obterPrimeiroEUltimoNome(String nome) {
        String[] partes = nome.trim().split("\\s+");
        return partes.length == 1 ? partes[0] : partes[0] + " " + partes[partes.length - 1];
    }

    // Exercício 4
    public static boolean ehPalindromo(String texto) {
        String limpo = texto.replaceAll("\\s", "").toLowerCase();
        return new StringBuilder(limpo).reverse().toString().equals(limpo);
    }

    // Exercício 5
    public static List<String> converterEmails(List<String> emails) {
        List<String> convertidos = new ArrayList<>();
        for (String email : emails) {
            convertidos.add(email.trim().toLowerCase());
        }
        return convertidos;
    }

    // Exercício 6
    public enum Mes {
        JANEIRO(31), FEVEREIRO(28), MARCO(31), ABRIL(30),
        MAIO(31), JUNHO(30), JULHO(31), AGOSTO(31),
        SETEMBRO(30), OUTUBRO(31), NOVEMBRO(30), DEZEMBRO(31);

        private final int dias;

        Mes(int dias) {
            this.dias = dias;
        }

        public int getDias() {
            return dias;
        }
    }

    // Exercício 7
    public enum Moeda {
        DOLAR(5.10), EURO(5.50), REAL(1.0);

        private final double taxa;

        Moeda(double taxa) {
            this.taxa = taxa;
        }

        public double converter(double valor) {
            return valor / taxa;
        }
    }

    // Exercício 8
    public enum CodigoErro {
        NOT_FOUND(404, "Recurso não encontrado"),
        BAD_REQUEST(400, "Requisição inválida"),
        INTERNAL_SERVER_ERROR(500, "Erro interno do servidor");

        private final int codigo;
        private final String descricao;

        CodigoErro(int codigo, String descricao) {
            this.codigo = codigo;
            this.descricao = descricao;
        }

        public int getCodigo() {
            return codigo;
        }

        public String getDescricao() {
            return descricao;
        }
    }
}
1 resposta

Oi, Eleazar! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu projeto está muito bem estruturado e cobre uma variedade de exercícios de forma clara e didática. O uso de Optional, enum e manipulação de listas demonstra domínio dos conceitos abordados no curso. Parabéns por reunir tudo em uma única classe, facilitando a leitura e os testes.

Uma dica interessante para o futuro é explorar o método String.join() para montar listas em uma única linha, como ao exibir os e-mails convertidos:


List<String> emails = Arrays.asList("teste@exemplo.com", "usuario@java.com");
String resultado = String.join(", ", emails);
System.out.println(resultado);

Esse código imprime todos os e-mails separados por vírgula.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

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