Advertisement
Ligh7_of_H3av3n

11. The Party Reservation Filter Module

May 27th, 2024
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1. package Uprajnenie;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.function.Predicate;
  7.  
  8. public class ThePartyReservationFilterModule {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.  
  12.         String[] names = scanner.nextLine().split("\\s+");
  13.         List<String> filterList = new ArrayList<>();
  14.  
  15.         String filter = scanner.nextLine();
  16.         while (!filter.equals("Print")) {
  17.             String[] filterInfo = filter.split(";");
  18.             String operation = filterInfo[0].trim();
  19.  
  20.             if (operation.equals("Add filter")) {
  21.                 filterList.add(filterInfo[1].trim() + ";" + filterInfo[2].trim());
  22.             } else if (operation.equals("Remove filter")) {
  23.                 String toRemove = filterInfo[1].trim() + ";" + filterInfo[2].trim();
  24.                 filterList.remove(toRemove);
  25.             }
  26.  
  27.             filter = scanner.nextLine();
  28.         }
  29.  
  30.         for (String currentFilter : filterList) {
  31.             String[] currentFilterInfo = currentFilter.split(";");
  32.             String action = currentFilterInfo[0].trim();
  33.             String parameter = currentFilterInfo[1].trim();
  34.  
  35.             if (action.equals("Starts with")) {
  36.                 names = filter(names, (name) -> !name.startsWith(parameter));
  37.             } else if (action.equals("Ends with")) {
  38.                 names = filter(names, (name) -> !name.endsWith(parameter));
  39.             } else if (action.equals("Length")) {
  40.                 names = filter(names, (name) -> name.length() != Integer.parseInt(parameter));
  41.             } else if (action.equals("Contains")) {
  42.                 names = filter(names, (name) -> !name.contains(parameter));
  43.             }
  44.         }
  45.  
  46.         System.out.println(String.join(" ", names));
  47.     }
  48.  
  49.     private static String[] filter(String[] names, Predicate<String> predicate) {
  50.         List<String> filteredNames = new ArrayList<>();
  51.         for (String name : names) {
  52.             if (predicate.test(name)) {
  53.                 filteredNames.add(name);
  54.             }
  55.         }
  56.         return filteredNames.toArray(new String[0]);
  57.     }
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement