题解 | HJ_17 #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.util.Arrays; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.nextLine(); String[] points = input.split(";"); int[] result = {0, 0}; for (String point : points) { if (isValidPoint(point)) { move(point, result); } } System.out.println(result[0] + "," + result[1]); } private static void move(String point, int[] result) { String direction = point.substring(0, 1); String distance = point.substring(1); switch (direction) { case "A" : result[0] -= Integer.parseInt(distance); break; case "D" : result[0] += Integer.parseInt(distance); break; case "W" : result[1] += Integer.parseInt(distance); break; case "S" : result[1] -= Integer.parseInt(distance); break; } } private static boolean isValidPoint(String point) { if (point.length() >= 2 && point.length() <= 3 && Arrays.asList("A", "D", "W", "S").contains(point.substring(0, 1))) { String numStr = point.substring(1); return numStr.matches("\\d+"); } return false; } }