题解 | #坐标移动#
坐标移动
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);
}
}
