题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
不需要正则表达式的JAVA解法!
- 写出合法的坐标移动过程后,再根据题目要求,类似“剪枝”,剔掉不合法的即可。
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); } }