输入坐标移动
描述
示例1
输入:A10;S20;W10;D30;X;A1A;B10A11;;A10;
输出:10,-10
示例2
输入:ABC;AKL;DA1;D001;W023;A100;S00;
输出:0,0
说明:在这个样例中,全部指令均不合法,因此小人不移动。
示例3
输入:A00;S01;W2;
输出:0,1
实现代码:
public static void main(String[] args) {Scanner in = new Scanner(System.in);String s = in.nextLine();String[] commands = s.split(";");int x = 0, y = 0;for (String cmd : commands) {// 有效指令长度为2-3(方向+1-2位数字)if (cmd.length() >= 2 && cmd.length() <= 3) {char dir = cmd.charAt(0);// 方向必须是A/D/W/S中的一个if ("ADWS".indexOf(dir) == -1) continue;try {// 数字范围1-99int num = Integer.parseInt(cmd.substring(1));if (num <= 0 || num >= 100) continue;switch (dir) {case 'A': x -= num; break;case 'D': x += num; break;case 'W': y += num; break;case 'S': y -= num; break;}} catch (NumberFormatException e) {continue;}}}System.out.println(x + "," + y);}