Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MoreExercise_3_CarSalesman;
- import java.util.*;
- public class Main {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- Map<String, List<Engine>> engineByModel = new LinkedHashMap<>();
- int engines = Integer.parseInt(scan.nextLine());
- boolean hasNumber;
- for (int i = 0; i < engines; i++) {
- String[] input = scan.nextLine().split("\\s+");
- String engineModel = input[0];
- String engPower = input[1];
- String engDisplacement = "n/a";
- String engEfficiency = "n/a";
- if (input.length == 3) {
- String token = input[2];
- hasNumber = hasNumbers(token);
- if (hasNumber) {
- engDisplacement = token;
- } else {
- engEfficiency = token;
- }
- }
- if (input.length == 4) {
- engDisplacement = input[2];
- engEfficiency = input[3];
- }
- Engine currentEngine = new Engine(engineModel, engPower, engDisplacement, engEfficiency);
- engineByModel.putIfAbsent(engineModel, new ArrayList<>());
- engineByModel.get(engineModel).add(currentEngine);
- }
- Map<String, List<Car>> carByModel = new LinkedHashMap<>();
- int cars = Integer.parseInt(scan.nextLine());
- for (int i = 0; i < cars; i++) {
- String[] input = scan.nextLine().split("\\s+");
- String carModel = input[0];
- String carEngine = input[1];
- String carWeight = "n/a";
- String carColour = "n/a";
- if (input.length == 3) {
- String token = input[2];
- hasNumber = hasNumbers(token);
- if (hasNumber) {
- carWeight = token;
- } else {
- carColour = token;
- }
- }
- if (input.length == 4) {
- carWeight = input[2];
- carColour = input[3];
- }
- List<Engine> engineCurrModel = engineByModel.get(carEngine);
- Engine currEngine = getCurrentEngine(engineCurrModel);
- Car currentCar = new Car(carModel, currEngine, carWeight, carColour);
- carByModel.putIfAbsent(carModel, new ArrayList<>());
- carByModel.get(carModel).add(currentCar);
- System.out.println();
- }
- for (Map.Entry<String, List<Car>> stringListEntry : carByModel.entrySet()) {
- System.out.println(stringListEntry.
- toString().replace("[", "")
- .replace("]", "")
- .replace("=",":"));
- }
- }
- private static Engine getCurrentEngine(List<Engine> engineCurrModel) {
- String engineModel = "";
- String engPower = "";
- String engDisplacement = "";
- String engEfficiency = "";
- for (Engine engine : engineCurrModel) {
- engineModel = engine.getEngineModel();
- engPower = engine.getEngPower();
- engDisplacement = engine.getEngDisplacement();
- engEfficiency = engine.getEngEfficiency();
- }
- return new Engine(engineModel, engPower, engDisplacement, engEfficiency);
- }
- private static boolean hasNumbers(String token) {
- for (int i = 0; i < token.length(); i++) {
- int ascii = token.charAt(i);
- if (ascii > 47 && ascii < 58) {
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement