1. 题目
读题
考查点
2. 解法
思路
代码逻辑
具体实现
public class HJ017 {
public static List<String> directs = Arrays.asList("A", "D", "W", "S");
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(move(sc.nextLine()));
}
public static String move(String actions) {
int x = 0, y = 0;
for (String action : actions.split(";")) {
String[] cur = validAndSplit(action);
if (cur == null) {
continue;
}
String direct = cur[0];
int step = Integer.valueOf(cur[1]);
if ("A".equals(direct)) {
x = x - step;
} else if ("D".equals(direct)) {
x = x + step;
} else if ("W".equals(direct)) {
y = y +step;
} else if ("S".equals(direct)) {
y = y -step;
}
}
return x + "," + y;
}
public static String[] validAndSplit(String action) {
if (action == null || action.isEmpty()) {
return null;
}
String c = action.charAt(0) + "";
if (!directs.contains(c)) {
return null;
}
for (int i = 1; i < action.length(); i++) {
if (!Character.isDigit(action.charAt(i))) {
return null;
}
}
return new String[]{c + "", action.substring(1)};
}
}