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);
}
}