Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. package Exercise1002;
  2.  
  3. import java.lang.reflect.Array;
  4. import java.util.*;
  5. import java.util.regex.Matcher;
  6. import java.util.regex.Pattern;
  7. import java.util.stream.Collectors;
  8. import java.util.zip.InflaterInputStream;
  9. import java.util.ArrayList;
  10. import java.util.Collections;
  11. import java.util.List;
  12. import java.util.Scanner;
  13. import java.util.LinkedHashMap;
  14.  
  15. public class Exercise1002 {
  16.     public static void main(String[] args) {
  17.         Scanner scanner = new Scanner(System.in);
  18.  
  19.         List<String> demons = Arrays.stream(scanner.nextLine().split("[, ]+")).sorted(String::compareTo).collect(Collectors.toList());
  20.  
  21.         String healthRegex = "([^\\d+\\-*.\\/])";
  22.         String damageRegex ="(-?\\d+\\.?d*)";
  23.         String operationRegex = "([*|/])";
  24.         Pattern pattern = Pattern.compile(healthRegex);
  25.         Pattern damagePattern = Pattern.compile(damageRegex);
  26.         Pattern operationPattern = Pattern.compile(operationRegex);
  27.         for (String demon:demons) {
  28.             Matcher matcher =pattern.matcher(demon);
  29.  
  30.             int health = 0;
  31.  
  32.             while (matcher.find()) {
  33.                 health +=matcher.group(1).charAt(0);
  34.  
  35.  
  36.  
  37.             }
  38.             matcher = damagePattern.matcher(demon);
  39.             double damage = 0;
  40.             while(matcher.find()) {
  41.                 damage += Double.parseDouble(matcher.group(1));
  42.             }
  43.             matcher = operationPattern.matcher(demon);
  44.  
  45.             while(matcher.find()) {
  46.                 if(matcher.group(1).equals("*")) {
  47.                     damage *= 2;
  48.                 }else {
  49.                     damage /= 2;
  50.                 }
  51.             }
  52.             System.out.printf("%s - %d health, %.2f damage%n",demon,health,damage);
  53.  
  54.  
  55.         }
  56.  
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement