Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Exams;
- import java.util.*;
- import java.util.stream.Collectors;
- public class ExcelFunctions {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = Integer.parseInt(sc.nextLine());
- List<String> headers = Arrays.stream(sc.nextLine().split(",\\s+")).collect(Collectors.toList());
- List<List<String>> matrix = new ArrayList<>(n - 1);
- matrix.add(headers);
- for (int r = 1; r < n; r++) {
- matrix.add(new ArrayList<>());
- String[] tokens = sc.nextLine().split(",\\s+");
- for (int c = 0; c < tokens.length; c++) {
- matrix.get(r).add(tokens[c]);
- }
- }
- String[] commands = sc.nextLine().split("\\s+");
- String option = commands[0];
- switch (option) {
- case "hide":
- String headerToHide = commands[1];
- hideHeader(matrix, headerToHide);
- break;
- case "sort":
- String criteria = commands[1];
- sortHeader(matrix, criteria);
- break;
- case "filter":
- String header = commands[1];
- String value = commands[2];
- filterHeader(matrix, header, value);
- break;
- }
- }
- private static void hideHeader(List<List<String>> matrix, String headerToHide) {
- int indexOfHeader = matrix.get(0).indexOf(headerToHide);
- for (int r = 0; r < matrix.size(); r++) {
- matrix.get(r).remove(indexOfHeader);
- }
- for (int r = 0; r < matrix.size(); r++) {
- System.out.println(String.join(" | ", matrix.get(r)));
- }
- }
- public static void sortHeader(List<List<String>> matrix, String criteria) {
- int headerToSort = matrix.get(0).indexOf(criteria);
- List<String> sortCriteria = new ArrayList<>();
- for (int r = 1; r < matrix.size(); r++) {
- sortCriteria.add(matrix.get(r).get(headerToSort));
- }
- Collections.sort(sortCriteria);
- System.out.println(String.join(" | ", matrix.get(0)));
- for (int i = 0; i < sortCriteria.size(); i++) {
- String element = sortCriteria.get(i);
- for (int r = 1; r < matrix.size(); r++) {
- if (matrix.get(r).get(headerToSort).equals(element)){
- System.out.println(String.join(" | ", matrix.get(r)));
- }
- }
- }
- }
- private static void filterHeader(List<List<String>> matrix, String header, String value) {
- int headerToFilter = matrix.get(0).indexOf(header);
- System.out.println(String.join(" | ", matrix.get(0)));
- for (int r = 1; r < matrix.size(); r++) {
- if (matrix.get(r).get(headerToFilter).equals(value)){
- System.out.println(String.join(" | ", matrix.get(r)));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement