题解 | #坐标移动#

坐标移动

http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

//JAVA 用正则
//Map.getOrDefault()这个函数要活用起来。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String inStr = sc.nextLine();
        int x = 0 , y = 0;
        String[] codiArr = inStr.split(";");
        //正则匹配 []里面匹配一个,java里面\\d是\d的转义,代表数字0-9 
        String regex = "[A|S|D|W]\\d{1}\\d?";
        Map<Character,Integer> outMap = new HashMap<>();
        //获取有效的坐标数据
        for(int i =0;i<codiArr.length;i++){
            if(codiArr[i].matches(regex)){
                //outMap.getOrDefault(codiArr[i],1) 
                //方法为如果map中已经有相应的key,就返回这个key对应的value,否则就返回后面的默认值,这里是设置的int类型的计算,所以这里根据需求设置默认值为0
                outMap.put(codiArr[i].charAt(0),outMap.getOrDefault(codiArr[i].charAt(0),0) + Integer.parseInt(codiArr[i].substring(1,codiArr[i].length())));
            }
        }
            x = x - outMap.get('A') + outMap.get('D');
            y = y - outMap.get('S') + outMap.get('W');
            System.out.println(x+","+y);
  }
}
全部评论

相关推荐

宇智波爱学习:我还没收到笔试
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务