Olá, Alan. Tudo bem?
Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.
Ótimo como você utilizou streams para processar a lista e filtrar apenas os valores numéricos. A abordagem com regex (\\d+
) é uma ótima escolha para garantir que apenas números inteiros positivos sejam considerados.
Uma alternativa interessante seria tratar possíveis exceções ao converter os valores, evitando problemas caso a entrada tenha caracteres inesperados. Veja este exemplo:
List<Integer> numbers = input.stream()
.map(s -> {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return null;
}
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
System.out.println(numbers);
Isso evita que o programa pare caso encontre um valor inválido. Ótima prática para trabalhar com dados externos!
Conte com o apoio do Fórum. Abraços e bons estudos.