题解 | 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;
}
}
