不需要正则表达式的JAVA解法!

  1. 写出合法的坐标移动过程后,再根据题目要求,类似“剪枝”,剔掉不合法的即可。
import java.util.Scanner;

/**
 * @author m
 * @Description
 * @creat 2021-07-14
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] s = str.split(";");
        int x=0,y=0;
        for(int i=0;i<s.length;i++){

            //0.排除空字符串
            if(s[i] == null) continue;
            //1.排除长字符串
            if(s[i].length()>3 || s[i].length()<2){
                continue;
            }
            //2.排除长度符合要求,但不合法的字符串
            String numStr = s[i].substring(1,s[i].length());
            if(numStr.contains("A") || numStr.contains("D")||numStr.contains("W")||numStr.contains("S")) continue;

            int num = Integer.parseInt(numStr);
            if(s[i].charAt(0) == 'A'){
                if(num<100 && num>=0) x -= num;//排除出现多个字母的情况
            }
            if(s[i].charAt(0) == 'D'){
                if(num<100 && num>=0) x += num;
            }
            if(s[i].charAt(0) == 'W'){
                if(num<100 && num>=0)  y += num;
            }
            if(s[i].charAt(0) == 'S'){
                if(num<100 && num>=0) y -= num;
            }
        }

        System.out.println(x+","+y);

    }

}