1
resposta

[Sugestão] Resolvendo ex 01 ao 03

package br.com.mlucas.atividades1;

import java.text.Normalizer;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        // Ex 01:
        List<String> input = Arrays.asList("10", "abc", "20", "30x");
        List<Integer> numeros = input.stream()
                .filter(s -> s.matches("\\d+"))
                .map(Integer::parseInt)
                .collect(Collectors.toList());
        System.out.println(numeros);

        // Ex 02:
        System.out.println(processaNumero(Optional.of(5)));
        System.out.println(processaNumero(Optional.of(-3)));
        System.out.println(processaNumero(Optional.empty()));

        // Ex 03:
        System.out.println(ehPalindromo("socorram-me subi no onibus em marrocos"));
        System.out.println(ehPalindromo("Java"));
    }
    // metodo ex 02..
    public static Optional<Integer> processaNumero(Optional<Integer> numero) {
       return numero.filter( n -> n > 0)
               .map(n -> n * n);
    }

    // metodo ex 03..
    public static boolean ehPalindromo(String frase) {
        if (frase == null || frase.isEmpty()) {
            return false;
        }
        String semAcentos = Normalizer.normalize(frase, Normalizer.Form.NFD)
                .replaceAll("[^\\p{ASCII}]", "");
        String semEspacos = semAcentos.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
        return new StringBuilder(semEspacos).reverse().toString().equalsIgnoreCase(semEspacos);
    }
}

1 resposta

Muito bem!