Untitled
unknown
plain_text
a year ago
2.3 kB
4
Indexable
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Scanner; import java.util.function.Predicate; import java.util.stream.Collectors; public class _11_ThePartyReservationFilterModule { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList<String> guests = Arrays.stream(scanner.nextLine().split("\\s+")) .collect(Collectors.toCollection(ArrayList::new)); HashMap<String, Predicate> predicates = new HashMap<>(); String command = scanner.nextLine(); while (!command.equals("Print")) { String[] input = command.substring(command.indexOf(";") + 1).split("([ ;]+)"); int index = 2; if (input.length == 2) { index = 1; } String name = input[0] + input[index]; if (command.contains("Add")) { Predicate<String> predicate = null; switch (input[0]) { case "Starts": predicate = s -> s.startsWith(input[2]); predicates.putIfAbsent(name, predicate); break; case "Ends": predicate = s -> s.endsWith(input[2]); predicates.putIfAbsent(name, predicate); break; case "Length": predicate = s -> s.length() == Integer.parseInt(input[2]); predicates.putIfAbsent(name, predicate); break; case "Contains": predicate = s -> s.contains(input[1]); predicates.putIfAbsent(name, predicate); break; } } else { predicates.remove(name); } command = scanner.nextLine(); } for (String guest : guests) { boolean isGoing = true; for (String entry : predicates.keySet()) { if (predicates.get(entry).test(guest)) { isGoing = false; break; } } if (isGoing) { System.out.print(guest + " "); } } } }
Editor is loading...
Leave a Comment