Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import java.util.stream.Collectors;
- public class NetherRealms {
- public static void main(String[] args){
- Scanner Scanner = new Scanner(System.in);
- List<String> daemons = Arrays.stream(Scanner.nextLine().split(",\\s*")).collect(Collectors.toList());
- Map<String, String> daemonsCollection = new TreeMap<>();
- for(int i = 0; i < daemons.size(); i++){
- String daemonName = daemons.get(i);
- int daemonHealth = 0;
- Pattern p = Pattern.compile("(?<symbol>[^0-9+\\-*\\/.])");
- Matcher m = p.matcher(daemonName);
- while(m.find()){
- int ascii = (int) m.group("symbol").charAt(0);
- daemonHealth += ascii;
- }
- Pattern p2 = Pattern.compile("(?<number>(?:-|\\+|)\\d+(?:\\.*?\\d+)*)");
- Matcher m2 = p2.matcher(daemonName);
- double baseDamage = 0.00;
- while(m2.find()){
- baseDamage += Double.parseDouble(m2.group("number"));
- }
- Pattern p3 = Pattern.compile("(?<operator>[*|\\/])");
- Matcher m3 = p3.matcher(daemonName);
- while(m3.find()){
- if (m3.group("operator").equals("*")){
- baseDamage = baseDamage * 2;
- } else if (m3.group("operator").equals("/")){
- baseDamage = baseDamage / 2;
- }
- }
- daemonsCollection.put(daemonName, daemonHealth + " " + baseDamage);
- }
- for(Map.Entry<String, String> entry : daemonsCollection.entrySet()){
- String[] temp = entry.getValue().split(" ");
- int Health = Integer.parseInt(temp[0]);
- double Damage = Double.parseDouble(temp[1]);
- System.out.printf("%s - %d health, %.2f damage\n", entry.getKey(), Health, Damage);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement