题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.util.Scanner;
import java.util.ArrayList;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
//1.读入字符串
String s=in.nextLine();
//2.切割字符串
String[] s1=s.split(";");
//3.判断坐标的合法性 把合法的坐标存储进list
ArrayList<String> s2=new ArrayList<>();
//4.遍历字符数组
for(int i=0;i<s1.length;i++){
//4.1 长度大于3的不合法
if(s1[i].length()<=3&&s1[i].length()>1){
//4.2 第一个字符不是这四个字母的不合法
if(s1[i].charAt(0)=='A'||
s1[i].charAt(0)=='D'||
s1[i].charAt(0)=='W'||
s1[i].charAt(0)=='S'){
//4.3 第二个字符和第三个字符不是数字的不合法
if(s1[i].charAt(1)>='0'&&s1[i].charAt(1)<='9'){
//4.3 如果字符长度等于3
if(s1[i].length()==3){
if(s1[i].charAt(2)>='0'&&s1[i].charAt(2)<='9'){
//4.4 直接加入集合
s2.add(s1[i]);
}
}else{
s2.add(s1[i]);
}
}
}
}
}
// 5.集合加入完成以后 开始移动坐标
//5.1创建坐标 x 表示横坐标 y 表示纵坐标
int x=0,y=0;
for(int i=0;i<s2.size();i++){
String t=s2.get(i);
//5.2 截断字符串
String t1=t.substring(1);
//5.3 转换字符串为数值
int q=Integer.parseInt(t1);
switch(t.charAt(0)){
case 'A':
//左移
x-=q;
break;
case 'D':
//右移
x+=q;
break;
case 'W':
//上移
y+=q;
break;
case 'S':
//下移
y-=q;
break;
}
}
System.out.println(x+","+y);
}
}
}

