基本上仅使用条件语句判断,没有用到正则表达式。 边读取边执行。
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] arr = str.split(";");
int x=0;
int y=0;
for(int i=0;i<arr.length;i++){
if(arr[i].length()>3 || arr[i].length()==0){
continue;
}
else if(arr[i].charAt(0)!='W' && arr[i].charAt(0)!='A' && arr[i].charAt(0)!='S' && arr[i].charAt(0)!='D'){
continue;
}
else if(arr[i].charAt(1)>'9' ||arr[i].charAt(1)<'0'){
continue;
}
int num = 0;
if(arr[i].length()==3){
if(arr[i].charAt(2)>'9' ||arr[i].charAt(2)<'0'){
continue;
}
num += (arr[i].charAt(1)-'0') * 10;
num += arr[i].charAt(2)-'0';
}
else{
num += arr[i].charAt(1)-'0';
}
if(arr[i].charAt(0)=='W'){
y+=num;
}
else if(arr[i].charAt(0)=='A'){
x-=num;
}
else if(arr[i].charAt(0)=='S'){
y-=num;
}
else if(arr[i].charAt(0)=='D'){
x+=num;
}
}
System.out.println(x+","+y);
}
}