HJ17 坐标移动

HJ17 坐标移动
 题目大意如下,
A左移,D右移,W上移,S下移。从(0,0)点开始移动,从输入字符串里面读取坐标,并输出结果

合法坐标为A(或者D或者W或者S) + 数字(两位以内)。坐标之间以;分隔。

处理过程:

起点(0,0)

+   A10   =  (-10,0)

+   S20   =  (-10,-20)

+   W10  =  (-10,-10)

+   D30  =  (20,-10)

+   x    =  无效

+   A1A   =  无效

+   B10A11   =  无效

+  一个空 不影响

+   A10  =  (10,-10)

结果 (10, -10)
得出A左移 S下移会使原x-相应值;W 上移D右移会使原x+相应值
可以将字符串安装;分割存储到字符串数组
所以需要匹配到合法与不合法的的输入
 这里采用正则表达式
[WASD][0-9]{1,2}   含义为当前字符串是WASD中的一个 后面跟1位或两位数字
不合法就跳过,不影响x,y的值
代码如下
import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args)throws IOException{
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        String[] in=bf.readLine().split(";");
        int x=0;
        int y=0;
        for(String s:in){
            if(!s.matches("[WASD][0-9]{1,2}")){ continue;}
        
             int val=Integer.valueOf(s.substring(1));
            switch(s.charAt(0)){
                case 'W':
                    y+=val;
                    break;
                case 'S':
                    y-=val;
                    break;
                case 'A':
                    x-=val;
                    break;
                case 'D':
                    x+=val;
                    break;
            }
        }
        System.out.println(x+","+y);
    }   
}



#Java#
全部评论
这是题解吗😂
点赞 回复 分享
发布于 2022-06-02 15:09

相关推荐

有了offer来还愿:学校不行,专业不行,学历不行,怎么找?
点赞 评论 收藏
分享
否极泰来来来来:解约赔多少
点赞 评论 收藏
分享
10-11 14:44
济南大学 Java
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

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