Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Uprajnenie;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- import java.util.function.Predicate;
- public class ThePartyReservationFilterModule {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String[] names = scanner.nextLine().split("\\s+");
- List<String> filterList = new ArrayList<>();
- String filter = scanner.nextLine();
- while (!filter.equals("Print")) {
- String[] filterInfo = filter.split(";");
- String operation = filterInfo[0].trim();
- if (operation.equals("Add filter")) {
- filterList.add(filterInfo[1].trim() + ";" + filterInfo[2].trim());
- } else if (operation.equals("Remove filter")) {
- String toRemove = filterInfo[1].trim() + ";" + filterInfo[2].trim();
- filterList.remove(toRemove);
- }
- filter = scanner.nextLine();
- }
- for (String currentFilter : filterList) {
- String[] currentFilterInfo = currentFilter.split(";");
- String action = currentFilterInfo[0].trim();
- String parameter = currentFilterInfo[1].trim();
- if (action.equals("Starts with")) {
- names = filter(names, (name) -> !name.startsWith(parameter));
- } else if (action.equals("Ends with")) {
- names = filter(names, (name) -> !name.endsWith(parameter));
- } else if (action.equals("Length")) {
- names = filter(names, (name) -> name.length() != Integer.parseInt(parameter));
- } else if (action.equals("Contains")) {
- names = filter(names, (name) -> !name.contains(parameter));
- }
- }
- System.out.println(String.join(" ", names));
- }
- private static String[] filter(String[] names, Predicate<String> predicate) {
- List<String> filteredNames = new ArrayList<>();
- for (String name : names) {
- if (predicate.test(name)) {
- filteredNames.add(name);
- }
- }
- return filteredNames.toArray(new String[0]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement