Advertisement
Tsuki11

MainFinal

Mar 13th, 2020
1,064
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.61 KB | None | 0 0
  1. package MoreExercise_3_CarSalesMan02;
  2.  
  3. import java.util.*;
  4.  
  5. public class Main {
  6.  
  7.     public static void main(String[] args) {
  8.         Scanner scan = new Scanner(System.in);
  9.  
  10.         Map<String, List<Engine1>> engineParameters = new HashMap<>();
  11.         int length = 0;
  12.         int countEngines = Integer.parseInt(scan.nextLine());
  13.         boolean hasNumber;
  14.         for (int i = 0; i < countEngines; i++) {
  15.             String[] tokens = scan.nextLine().split("\\s+");
  16.             String engineModel = tokens[0];
  17.             String power = tokens[1];
  18.             String displacement = "n/a";
  19.             String efficiency = "n/a";
  20.  
  21.             length = tokens.length;
  22.             if (length == 3) {
  23.                 String current = tokens[2];
  24.                 hasNumber = checkForNumbers(current);
  25.                 if (hasNumber) {
  26.                     displacement = current;
  27.                 } else {
  28.                     efficiency = current;
  29.                 }
  30.             }
  31.  
  32.             if (length > 3) {
  33.                 displacement = tokens[2];
  34.                 efficiency = tokens[3];
  35.             }
  36.  
  37.             Engine1 currentEngine = new Engine1(engineModel, power, displacement, efficiency);
  38.             engineParameters.putIfAbsent(engineModel, new ArrayList<>());
  39.             engineParameters.get(engineModel).add(currentEngine);
  40.         }
  41.  
  42.  
  43.         Map<Integer, List<Car1>> carParameters = new LinkedHashMap<>();
  44.  
  45.         int quantityCars = Integer.parseInt(scan.nextLine());
  46.  
  47.         for (int i = 0; i < quantityCars; i++) {
  48.             String[] tokens = scan.nextLine().split("\\s+");
  49.             String model = tokens[0];
  50.             String engine = tokens[1];
  51.             String weight = "n/a";
  52.             String color = "n/a";
  53.             length = tokens.length;
  54.             if (length == 3) {
  55.                 String current = tokens[2];
  56.                 hasNumber = checkForNumbers(current);
  57.                 if (hasNumber) {
  58.                     weight = current;
  59.                 } else {
  60.                     color = current;
  61.                 }
  62.             }
  63.  
  64.             if (length == 4) {
  65.                 weight = tokens[2];
  66.                 color = tokens[3];
  67.             }
  68.  
  69.             Engine1 enginePerThisCar = getParticularEngine(engine, engineParameters);
  70.             Car1 currentCar = new Car1(model, enginePerThisCar, weight, color);
  71.             int position = i;
  72.             carParameters.putIfAbsent(position, new ArrayList<>());
  73.             carParameters.get(position).add(currentCar);
  74.         }
  75.  
  76.  
  77.         for (Map.Entry<Integer, List<Car1>> currentElement : carParameters.entrySet()) {
  78.             currentElement.getValue().stream().forEach(f-> {
  79.                 System.out.println(String.format("%s:" + "\n" + "  %s:\n" +
  80.         "    Power: %s\n" +
  81.         "    Displacement: %s\n" +
  82.         "    Efficiency: %s\n" +
  83.         "  Weight: %s\n" +
  84.         "  Color: %s",f.getModel(),
  85.                         f.getEngine().getEngineModel(),
  86.                         f.getEngine().getPower(),
  87.                         f.getEngine().getDisplacement(),
  88.                         f.getEngine().getEfficiency(),
  89.                         f.getWeight(),f.getColor()));
  90.             });
  91.         }
  92.  
  93. //        for (List<Car1> value : carParameters.values()) {
  94. //            System.out.println(value.
  95. //                    toString().replace("[", "")
  96. //                    .replace("]", "")
  97. //                    .replace("=", ":"));
  98. //        }
  99.     }
  100.  
  101.     private static Engine1 getParticularEngine(String engine, Map<String, List<Engine1>> engineParameters) {
  102.         List<Engine1> temp = new ArrayList<>();
  103.         Engine1 engine1;
  104.         for (Map.Entry<String, List<Engine1>> element : engineParameters.entrySet()) {
  105.             String modelCurrent = element.getKey();
  106.             if (modelCurrent.equals(engine)) {
  107.                 String specificModel = element
  108.                         .getValue().get(0).getEngineModel();
  109.                 String power = element.getValue().get(0).getPower();
  110.                 String displacement = element.getValue().get(0).getDisplacement();
  111.                 String efficiency = element.getValue().get(0).getEfficiency();
  112.                 return engine1 = new Engine1(specificModel, power, displacement, efficiency);
  113.             }
  114.         }
  115.         return null;
  116.     }
  117.  
  118.     private static boolean checkForNumbers(String current) {
  119.         for (int i = 0; i < current.length(); i++) {
  120.             int ascii = current.charAt(i);
  121.             if (ascii > 47 && ascii < 58) {
  122.                 return true;
  123.             }
  124.         }
  125.         return false;
  126.     }
  127.  
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement