radostin999

Untitled

Jul 26th, 2023
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. package Exercise;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8. import java.util.stream.Collectors;
  9.  
  10. public class NetherRealms {
  11. public static void main(String[] args) {
  12. Scanner scanner = new Scanner(System.in);
  13.  
  14. String input = scanner.nextLine();
  15.  
  16. List<String> nameList = Arrays.stream(scanner.nextLine().split("\\s*,\\s*")).collect(Collectors.toList());
  17.  
  18. String regexHealth = "[^0-9+*-\\/.]";
  19. Pattern patternHealth = Pattern.compile(regexHealth);
  20.  
  21. String regexDamage = "\\+?\\-?\\d+\\.?\\d*";
  22. Pattern patternDamage = Pattern.compile(regexDamage);
  23.  
  24. for(String name : nameList){
  25. Matcher matcherHealth = patternHealth.matcher(name);
  26. int health = 0;
  27.  
  28. while(matcherHealth.find()){
  29. char symbol = matcherHealth.group().charAt(0);
  30. health += symbol;
  31. }
  32.  
  33. Matcher matcherDamage = patternDamage.matcher(name);
  34. double damage = 0;
  35. while (matcherDamage.find()){
  36. double currentDamage = Double.parseDouble(matcherDamage.group());
  37. damage += currentDamage;
  38. }
  39.  
  40. for (Character symbol : name.toCharArray()) {
  41. if (symbol == '/') {
  42. damage /= 2;
  43. } else if (symbol == '*') {
  44. damage *= 2;
  45. }
  46. }
  47.  
  48. System.out.printf("%s - %d health, %.2f damage%n", name, health, damage);
  49. }
  50. }
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment