题解 | 华为题库-坐标移动-模拟
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
模拟即可
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int pos[]=new int[2]; String line = in.nextLine(); String strs[]=line.split(";"); for(String str:strs){ //合法性 if(str.length()<2){ continue; } char s=str.charAt(0); int num=0; boolean flag = false; for(int i=1;i<str.length();i++){ char c =str.charAt(i); if(c<='9'&&c>='0'){ num*=10; num+=(int)(c-'0'); }else{ flag = true; break; } } if(flag) { continue; } // 移动 switch(s){ case 'A': //A表示向左移动 pos[0]-=num; break; case 'D': //D表示向右移动 pos[0]+=num; break; case 'W': //W表示向上移动 pos[1]+=num; break; case 'S':// S表示向下移动 pos[1]-=num; break; default: } // System.out.println(s+","+pos[0]+","+pos[1]); } System.out.println(+pos[0]+","+pos[1]); } }