Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package TechModule;
- import java.util.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import java.util.stream.Collectors;
- public class p07_RegexRace {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- List<String>names= Arrays.stream(scanner.nextLine().split(", ")).collect(Collectors.toList());
- Map<String,Integer>information=new HashMap<>();
- String input=scanner.nextLine();
- for (int i = 0; i <names.size() ; i++) {
- information.putIfAbsent(names.get(i),0);
- }
- String nameRegex="(?<name>[a-zA-Z]+)";
- String kmRegex="(?<km>[\\d])";
- Pattern patternName=Pattern.compile(nameRegex);
- Pattern patternKm=Pattern.compile(kmRegex);
- Matcher matcherName=patternName.matcher(input);
- Matcher matcherKm=patternKm.matcher(input);
- int sum=0;
- while(!input.equals("end of race")){
- matcherName=patternName.matcher(input);
- matcherKm=patternKm.matcher(input);
- String b ="";
- sum=0;
- while(matcherName.find()){
- String a = matcherName.group(1);
- //String b=matcherKm.group(1);
- // information.putIfAbsent(matcherName.group(1),Integer.parseInt(matcherKm.group(1)));
- b +=a;
- }
- while(matcherKm.find()){
- sum+=Integer.parseInt(matcherKm.group(1));
- }
- if(information.containsKey(b)){
- information.put(b,information.get(b)+sum);}
- input=scanner.nextLine();
- }
- List<String>nameZ=new ArrayList<>();
- information.entrySet().stream().sorted((a,b)->Integer.compare(b.getValue(),a.getValue()))
- .forEach(e->{nameZ.add(e.getKey());
- });
- for (int i = 0; i <nameZ.size() ; i++) {
- if(i==0){
- System.out.println(String.format("%dst place: %s",i+1,nameZ.get(i)));
- }else if(i==1){
- System.out.println(String.format("%dnd place: %s",i+1,nameZ.get(i)));
- }else if(i==2) {
- System.out.println(String.format("%drd place: %s",i+1,nameZ.get(i)));
- break;}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment