利用正则表达式就很容易进行判断,然后移动相应的坐标,最后返回即可。
具体代码如下:
1 import java.util.ArrayList; 2 import java.util.Scanner; 3 import java.util.regex.Pattern; 4 5 public class Main { 6 public int [] get(String [] locate){ 7 int [] res = new int[2]; 8 res[0] = 0; 9 res[1] = 0; 10 // Pattern p = Pattern.compile("[ADWS]\\d{1-2}"); 11 for(int i=0;i<locate.length;i++){ 12 if(locate[i].matches("[ADWS]\\d{1,2}")){ 13 int num = Integer.valueOf(locate[i].substring(1)); 14 char begin = locate[i].charAt(0); 15 switch(begin){ 16 case 'A':res[0]-=num; 17 break; 18 case 'D':res[0]+=num; 19 break; 20 case 'W':res[1]+=num; 21 break; 22 case 'S':res[1]-=num; 23 break; 24 } 25 } 26 } 27 return res; 28 } 29 /** 30 * @param args 31 */ 32 public static void main(String[] args) { 33 // TODO Auto-generated method stub 34 Main m = new Main(); 35 Scanner scanner = new Scanner(System.in); 36 String input = scanner.nextLine(); 37 String [] operates = input.split(";"); 38 int [] locates = m.get(operates); 39 System.out.println(locates[0]+","+locates[1]); 40 } 41 }