题解 | #坐标移动#

坐标移动

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String a = in.nextLine();
            String[] b = a.split(";");
            int x = 0;
            int y = 0;
            for (int i = 0; i < b.length; i++) {
                String su = b[i];
                if (su.matches("[WASD][0-9]{1,2}")) {  //重点在于此处,题目说两位数以内,个人误以为是一定要两个数位,比如如果是1,那坐标应该输入成01,结果就在正则里少了一种可行坐标校验,导致上传后怎么试都提示错误,后面才发现确实是理解错了,在正则表达式内加上正确情况的补充条件就通过了~
                    switch (su.charAt(0)) {
                        case 'A' :
                            int t1 = Integer.valueOf(su.substring(1));
                            x -= t1;
                            break;
                        case 'D' :
                            t1 = Integer.valueOf(su.substring(1));
                            x += t1;
                            break;
                        case 'W' :
                            t1 = Integer.valueOf(su.substring(1));
                            y += t1;
                            break;
                        case 'S' :
                            t1 = Integer.valueOf(su.substring(1));
                            y -= t1;
                            break;
                    }
                }
            }
            System.out.println(x + "," + y);
        }
    }
}

全部评论

相关推荐

07-03 16:02
门头沟学院 Java
点赞 评论 收藏
分享
05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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