Advertisement
Jonas_3k

somaletter

Mar 6th, 2022
999
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Objects;
  3. import java.util.Scanner;
  4.  
  5. public class SomaLetter {
  6.     public static void main(String[] args) {
  7.         var teclado = new Scanner(System.in);
  8.         var entradas = new String[10];
  9.         var contador = 0;
  10.         var desejaSair = "nรฃo";
  11.  
  12.         do{
  13.             System.out.print("Entre com uma nรบmero e uma letra \n\tEx: \"10 C\"\nDigite: ");
  14.             entradas[contador] = teclado.nextLine().toUpperCase();
  15.             System.out.print("\nDeseja sair? [Sim/Nรฃo] :");
  16.             desejaSair = teclado.nextLine();
  17.             contador++;
  18.         } while(desejaSair.toLowerCase().contains("n"));
  19.        
  20.         for(int i = 0; i< contador; i++){
  21.             var letraAtual = retorneLetraContidaNaString(entradas[i]);
  22.             for(int x = 0; x < contador -1; x ++){
  23.                 var proximaLetra = retorneLetraContidaNaString(entradas[x]);
  24.                 var casoProximaLetraSejaMaior = proximaLetra.compareTo(letraAtual) > 0;
  25.  
  26.                 if(casoProximaLetraSejaMaior){
  27.                     var entradaAtual    = entradas[i];
  28.                     var proximaEntrada  = entradas[x];
  29.                     entradas[i] = proximaEntrada;
  30.                     entradas[x] = entradaAtual;
  31.                 }
  32.                
  33.             }
  34.         }
  35.  
  36.         var letra = retorneLetraContidaNaString(entradas[0]);
  37.         var soma = 0;
  38.         var resultado = new ArrayList<String>(0);
  39.  
  40.         for(var entrada: entradas){
  41.            
  42.             if(Objects.nonNull(entrada)){
  43.  
  44.                 if(entrada.contains(letra)){
  45.                     soma += retorneNumeroContidoNaString(entrada);
  46.                 }
  47.                 else {
  48.                     resultado.add(
  49.                         String.format("%d %s", soma,letra)
  50.                     );
  51.                     letra = retorneLetraContidaNaString(entrada);
  52.                     soma = retorneNumeroContidoNaString(entrada);
  53.                 }
  54.             }
  55.         }
  56.         System.out.println("Resultado: ");
  57.         resultado.forEach(System.out::println);
  58.  
  59.         teclado.close();
  60.     }
  61.  
  62.     private static Integer retorneNumeroContidoNaString(String entrada) {
  63.         return Integer.parseInt(entrada.split("\\s")[0]);
  64.     }
  65.  
  66.     private static String retorneLetraContidaNaString(String entrada) {
  67.         return entrada.split("\\s")[1];
  68.     }
  69.  
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement