基本上仅使用条件语句判断,没有用到正则表达式。 边读取边执行。

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);
    }
}