Advertisement
mirozspace

Pr1_1804

Apr 23rd, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4.  
  5. public class Pr1 {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         int n = Integer.parseInt(scanner.nextLine());
  10.         int sum = 0;
  11.         for (int i = 0; i < n; i++) {
  12.             String line = scanner.nextLine();
  13.             //String regex = "^n:(?<name>[^\\s]+\\s?[^\\s]+);t:(?<kind>[^\\s]+\\s?[^\\s]+);c--(?<country>[A-Z][a-z]+?\\s?[A-Z]?[a-z]+?)$";
  14.             String regex = "^n:(?<name>[^;]+);t:(?<kind>[^;]+);c--(?<country>[A-Za-z ]+)$";
  15.             Pattern pattern = Pattern.compile(regex);
  16.             Matcher matcher = pattern.matcher(line);
  17.  
  18.             if (matcher.find()) {
  19.                 String animalName = matcher.group("name");
  20.                 String animalKind = matcher.group("kind");
  21.                 String country = matcher.group("country");
  22.  
  23.                 sum += sumKgAnimals(animalName);
  24.                 sum += sumKgAnimals(animalKind);
  25.  
  26.                 animalName = filterNameOrKind(animalName);
  27.                 animalKind = filterNameOrKind(animalKind);
  28.                 System.out.println(String.format("%s is a %s from %s", animalName, animalKind, country));
  29.  
  30.             }
  31.         }
  32.         System.out.println(String.format("Total weight of animals: %dKG", sum));
  33.     }
  34.  
  35.     private static int sumKgAnimals(String animalNameOrKind) {
  36.         int sum = 0;
  37.         int digit;
  38.         for (int j = 0; j < animalNameOrKind.length(); j++) {
  39.             char symbol = animalNameOrKind.charAt(j);
  40.             if (Character.isDigit(symbol)) {
  41.                 digit = symbol - '0';
  42.                 sum = sum + digit;
  43.             }
  44.         }
  45.         return sum;
  46.     }
  47.  
  48.     private static String filterNameOrKind(String animalNameOrKind) {
  49.         StringBuilder sb = new StringBuilder();
  50.         for (int j = 0; j < animalNameOrKind.length(); j++) {
  51.             char symbol = animalNameOrKind.charAt(j);
  52.             if (Character.isLetter(symbol)) {
  53.                 sb.append(symbol);
  54.             } else if (symbol == ' ') {
  55.                 sb.append(symbol);
  56.             }
  57.         }
  58.         return sb.toString();
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement