Advertisement
Jonas_3k

somaletter

Mar 5th, 2022
1,007
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.64 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.HashSet;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class SomaLetter {
  8.     public static void main(String[] args) {
  9.         var teclado = new Scanner(System.in);
  10.         var entradas = new ArrayList<String>(0);
  11.         var desejaSair = "n";
  12.  
  13.         do{
  14.             System.out.print("Entre com uma número e uma letra \n\tEx: \"10 C\"\nDigite: ");
  15.             entradas.add(teclado.nextLine().toUpperCase());
  16.             System.out.print("\nDeseja sair? [Sim/Não] :");
  17.             desejaSair = teclado.nextLine();
  18.  
  19.         } while(desejaSair.toLowerCase().contains("n"));
  20.        
  21.         Collections.sort(entradas);
  22.         var letras = entradas.stream().map(SomaLetter::retornaLetra).toList();
  23.         removerLetrasDuplicadas(letras).stream().map(letra -> retornaSoma(letra,entradas))
  24.         .forEach(System.out::println);
  25.        
  26.         teclado.close();
  27.     }
  28.  
  29.     private static List<String> removerLetrasDuplicadas(List<String> letras) {
  30.         var set = new HashSet<String>();
  31.         letras.forEach(letra -> set.add(letra));
  32.         return set.stream().toList();
  33.     }
  34.  
  35.     public static String retornaSoma(String letra,List<String> entradas){
  36.    
  37.         return String.format("%d %s", entradas.stream().filter(entrada -> entrada.contains(letra))
  38.         .map(SomaLetter::retornaNumero)
  39.         .reduce(0, Integer::sum), letra);
  40.     }
  41.  
  42.     public static Integer retornaNumero(String entrada){ return Integer.parseInt(entrada.split("\\s")[0]);}
  43.     public static String retornaLetra(String entrada){ return entrada.split("\\s")[1]; }
  44.  
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement