题解 | #坐标移动#

坐标移动

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);
  }
}
全部评论

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务