Advertisement
rajeshinternshala

Untitled

Sep 16th, 2023
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.48 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main {
  4.     public static TreeMap<Double, Map<String, String>> parseInput(String s, List<String> cols) {
  5.         TreeMap<Double, Map<String, String>> table = new TreeMap<>();
  6.  
  7.         int pos = 0;
  8.         while (pos < s.length()) {
  9.             int semicolonPos = s.indexOf(';', pos);
  10.             String segment = s.substring(pos, semicolonPos == -1 ? s.length() : semicolonPos);
  11.  
  12.             if (!segment.isEmpty()) {
  13.                 int colonLPos = segment.indexOf(":L");
  14.                 String ratesPrices = segment.substring(0, colonLPos);
  15.                 String lock = segment.substring(colonLPos + 2);
  16.                 cols.add(lock);
  17.  
  18.                 String[] ratePricePairs = ratesPrices.split(",");
  19.                 for (int i = 0; i < ratePricePairs.length; i += 2) {
  20.                     try {
  21.                         double rate = Double.parseDouble(ratePricePairs[i]);
  22.                         String price = ratePricePairs[i + 1];
  23.  
  24.                         table.putIfAbsent(rate, new HashMap<>());
  25.                         table.get(rate).put(lock, price);
  26.                     } catch (NumberFormatException e) {
  27.                         System.err.println("Error parsing rate as a double: " + ratePricePairs[i]);
  28.                         // Handle the error or log it as needed
  29.                     }
  30.                 }
  31.             }
  32.  
  33.             if (semicolonPos == -1) {
  34.                 break;
  35.             } else {
  36.                 pos = semicolonPos + 1;
  37.             }
  38.         }
  39.  
  40.         return table;
  41.     }
  42.  
  43.     public static void main(String[] args) {
  44.         Scanner scanner = new Scanner(System.in);
  45.         String s = scanner.nextLine();
  46.         List<String> cols = new ArrayList<>();
  47.         TreeMap<Double, Map<String, String>> table = parseInput(s, cols);
  48.  
  49.         for (int i = 0; i < cols.size() + 1; i++) {
  50.             if (i == 0) {
  51.                 System.out.print("  ");
  52.             } else {
  53.                 System.out.print(cols.get(i - 1) + "  ");
  54.             }
  55.         }
  56.         System.out.println();
  57.  
  58.         for (Map.Entry<Double, Map<String, String>> entry : table.entrySet()) {
  59.             double rate = entry.getKey();
  60.             System.out.print(rate + " ");
  61.             Map<String, String> lockPriceMap = entry.getValue();
  62.  
  63.             for (String col : cols) {
  64.                 System.out.print(lockPriceMap.getOrDefault(col, "") + " ");
  65.             }
  66.             System.out.println();
  67.         }
  68.     }
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement