Advertisement
petar088

Main

Oct 13th, 2019
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.22 KB | None | 0 0
  1. package _13_DEFINING_CLASSES.Exercise_Class._5_Car_Salesman_;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.Map;
  5. import java.util.Scanner;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8.  
  9. public class Main {
  10. public static void main(String[] args) {
  11. Scanner sc = new Scanner(System.in);
  12. Map<String, Car> carGarage = new LinkedHashMap<>();
  13. Map<String, Engine> engineGarage = new LinkedHashMap<>();
  14.  
  15. int N = Integer.parseInt(sc.nextLine());
  16.  
  17. for (int i = 0; i < N; i++) {
  18. String[] input = sc.nextLine().split("\\s+");
  19.  
  20.  
  21. if (input.length == 3) {
  22. Pattern pattern = Pattern.compile("\\d+");
  23. Matcher matcher = pattern.matcher(input[2]);
  24.  
  25. if (matcher.find()) {
  26. String model = input[0];
  27. int power = Integer.parseInt(input[1]);
  28. int displacement = Integer.parseInt(input[2]);
  29.  
  30. Engine engine = new Engine(model, power, displacement);
  31. engineGarage.put(model, engine);
  32.  
  33. } else {
  34. String model = input[0];
  35. int power = Integer.parseInt(input[1]);
  36. String efficiency = input[2];
  37.  
  38. Engine engine = new Engine(model, power, efficiency);
  39. engineGarage.put(model, engine);
  40.  
  41. }
  42. } else if (input.length == 4) {
  43. String model = input[0];
  44. int power = Integer.parseInt(input[1]);
  45. int displacement = Integer.parseInt(input[2]);
  46. String efficiency = input[3];
  47.  
  48. Engine engine = new Engine(model, power, displacement, efficiency);
  49. engineGarage.put(model, engine);
  50.  
  51. } else if (input.length == 2) {
  52. String model = input[0];
  53. int power = Integer.parseInt(input[1]);
  54.  
  55. Engine engine = new Engine(model, power);
  56. engineGarage.put(model, engine);
  57. }
  58.  
  59. }
  60.  
  61. int M = Integer.parseInt(sc.nextLine());
  62. for (int i = 0; i < M; i++) {
  63. String[] input = sc.nextLine().split("\\s+");
  64.  
  65.  
  66. if (input.length == 3) {
  67. Pattern pattern = Pattern.compile("\\d+");
  68. Matcher matcher = pattern.matcher(input[2]);
  69. if (matcher.find()) {
  70. String model = input[0];
  71. String engine = input[1];
  72. int weight = Integer.parseInt(input[2]);
  73.  
  74. Car car = new Car(model, engine, weight, engineGarage.get(engine).getPower(), engineGarage.get(engine).getDisplacement(), engineGarage.get(engine).getEfficiency());
  75. carGarage.put(model, car);
  76.  
  77. } else {
  78. String model = input[0];
  79. String engine = input[1];
  80. String color = input[2];
  81.  
  82. Car car = new Car(model, engine, color, engineGarage.get(engine).getPower(), engineGarage.get(engine).getDisplacement(), engineGarage.get(engine).getEfficiency());
  83. carGarage.put(model, car);
  84.  
  85. }
  86. } else if (input.length == 4) {
  87. String model = input[0];
  88. String engine = input[1];
  89. int weight = Integer.parseInt(input[2]);
  90. String color = input[3];
  91.  
  92. Car car = new Car(model, engine, weight, color, engineGarage.get(engine).getPower(), engineGarage.get(engine).getDisplacement(), engineGarage.get(engine).getEfficiency());
  93. carGarage.put(model, car);
  94.  
  95. } else if (input.length == 2) {
  96. String model = input[0];
  97. String engine = input[1];
  98.  
  99. Car car = new Car(model, engine, engineGarage.get(engine).getPower(), engineGarage.get(engine).getDisplacement(), engineGarage.get(engine).getEfficiency());
  100. carGarage.put(model, car);
  101. }
  102.  
  103. }
  104.  
  105. carGarage.forEach((e, s) -> {
  106. String car = e;
  107. String engine = s.getEngine();
  108. int power = s.getPower();
  109.  
  110. System.out.println(car + ":");
  111. System.out.println(engine + ":");
  112. System.out.println("Power: " + power);
  113. if (engineGarage.get(s.getEngine()).getDisplacement() == -1) { //където липсва Displacement, съм заложил като стойност -1
  114. System.out.println("Displacement: n/a"); // с Weight също!
  115. } else {
  116. System.out.println("Displacement: " + s.getDisplacement());
  117.  
  118. }
  119. System.out.println("Efficiency: " + s.getEfficiency());
  120.  
  121. if (s.getWeight() == -1) {
  122. System.out.println("Weight: n/a");
  123. } else {
  124. System.out.println("Weight: " + s.getWeight());
  125.  
  126. }
  127. System.out.println("Color: " + s.getColor());
  128.  
  129.  
  130. });
  131. }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement