Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Scanner;
- public class SomaLetter {
- public static void main(String[] args) {
- var teclado = new Scanner(System.in);
- var entradas = new ArrayList<String>(0);
- var desejaSair = "n";
- do{
- System.out.print("Entre com uma número e uma letra \n\tEx: \"10 C\"\nDigite: ");
- entradas.add(teclado.nextLine().toUpperCase());
- System.out.print("\nDeseja sair? [Sim/Não] :");
- desejaSair = teclado.nextLine();
- } while(desejaSair.toLowerCase().contains("n"));
- Collections.sort(entradas);
- var letras = entradas.stream().map(SomaLetter::retornaLetra).toList();
- removerLetrasDuplicadas(letras).stream().map(letra -> retornaSoma(letra,entradas))
- .forEach(System.out::println);
- teclado.close();
- }
- private static List<String> removerLetrasDuplicadas(List<String> letras) {
- var set = new HashSet<String>();
- letras.forEach(letra -> set.add(letra));
- return set.stream().toList();
- }
- public static String retornaSoma(String letra,List<String> entradas){
- return String.format("%d %s", entradas.stream().filter(entrada -> entrada.contains(letra))
- .map(SomaLetter::retornaNumero)
- .reduce(0, Integer::sum), letra);
- }
- public static Integer retornaNumero(String entrada){ return Integer.parseInt(entrada.split("\\s")[0]);}
- public static String retornaLetra(String entrada){ return entrada.split("\\s")[1]; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement