import java.util.Scanner;
import java.util.ArrayList;
public class Main{
public static void main(String[] args){ Scanner sc=new Scanner(System.in); //接收数据 while(sc.hasNext()){ String str=sc.next(); System.out.println(getPosition(str)); } } //定义移动的方法 public static String getPosition(String str){ //定义坐标,初始值为0 int x=0; int y=0; //长度异常得(其实可以改为length<=1,毕竟方向加数字,起码两个吧)直接返回 if(str.length()==0||str==null){ return x+","+y; } //按;分割字符串 String[] strs=str.split(";"); //guo'lü'sh建立集合接收过滤后的值 ArrayList<String> step=filterData(strs); //循环按规则移动 for(String ele:step){ //方向 char direction=ele.charAt(0); //移动距离 int distance=Integer.parseInt(ele.substring(1)); //那就按规则移动得了 switch (direction){ case 'A': x-=distance; break; case 'D': x+=distance; break; case 'S': y-=distance; break; case 'W': y+=distance; break; } } return x+","+y; } //过滤数据得方法 public static ArrayList<String> filterData(String[] strs){ ArrayList<String> returnData=new ArrayList<>(); //第一个字母可能性的字符集合,为什么不用数组?集合可以用contains啊! ArrayList<String> first=new ArrayList<>(); first.add("A"); first.add("W"); first.add("S"); first.add("D"); //第二个之后的数字可以存在的集合(1-99) ArrayList<String> rest=new ArrayList<>(); for(int i=1;i<=99;i++){ rest.add(""+i); } //过滤数据 for(int i=0;i<strs.length;i++){ if(strs[i].length()>1){ //方向加数据,起码得两个吧 if(first.contains(strs[i].charAt(0)+"")){ //字母集合中存在再进入下一组判断。你看用集合多简单 String temp=strs[i].substring(1); //截取数字部分 if(rest.contains(temp)){ //是数字就把他放在集合里面 returnData.add(strs[i]); } } } } //返回筛选过得数据 return returnData; }
}