题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.util.Scanner;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("A", "D", "W", "S");
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
Integer a = 0;
Integer b = 0;
coo(list, in.nextLine(), a, b);
}
}
private static void coo(List<String> list, String coo, Integer a, Integer b) {
if (null == coo || coo.length() > 10000) {
return;
}
String[] split = coo.split(";");
for (String v : split) {
if (null != v && v.length() > 0) {
String direction = v.substring(0, 1);
boolean contains = list.contains(direction);
int value;
String valueStr = v.substring(1);
boolean matches = valueStr.matches("^\\d+$");
if (contains && matches) {
value = Integer.parseInt(valueStr);
if (value < 1 || value > 99) {
continue;
}
// 开始计算
switch (direction) {
case "A":
a = a - value;
break;
case "D":
a = a + value;
break;
case "W":
b = b + value;
break;
case "S":
b = b - value;
break;
default:
}
}
}
}
System.out.println( a + "," + b );
}
}

