import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
int x = 0, y = 0;
String[] parts = s.split(";", -1);
for (String part : parts) {
if (part.length() < 2 || part.length() > 3) {
continue;
}
char dir = part.charAt(0);
if (dir != 'A' && dir != 'D' && dir != 'W' && dir != 'S') {
continue;
}
String numStr = part.substring(1);
boolean validNum = true;
for (int i = 0; i < numStr.length(); i++) {
if (!Character.isDigit(numStr.charAt(i))) {
validNum = false;
break;
}
}
if (!validNum) {
continue;
}
int num = Integer.parseInt(numStr);
if (num < 1 || num > 99) {
continue;
}
switch (dir) {
case 'A':
x -= num;
break;
case 'D':
x += num;
break;
case 'W':
y += num;
break;
case 'S':
y -= num;
break;
}
}
System.out.println(x + "," + y);
}
}
https://www.nowcoder.com/discuss/727521113110073344
思路:
- 输入读取:使用Scanner.nextLine()读取整个输入字符串。
- 字符串分割:使用split(";", -1)将输入字符串按分号分割,保留所有部分,包括空字符串。
- 指令验证:检查指令长度是否为2或3。检查方向字符是否为有效字符(A、D、W、S)。检查剩余部分是否为有效数字(1-99之间,允许前导零)。
- 坐标更新:根据合法的指令方向及距离更新坐标。
- 结果输出:输出最终坐标。



京公网安备 11010502036488号