正则式.matches应用
我的解题思路:判断不符合标准的输入,以及switch函数进行情况选择
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String str1 = in.next();
int[] loc = new int[2];
String[] str = str1.split(";");
for (int i = 0; i < str.length; i++) {
loc = opr(str[i],loc);
}
System.out.println(loc[0]+","+loc[1]);
}
static int[] opr(String str,int[] loc) {
if(str.length()<2){
return loc;
}
char q = str.charAt(0);
String strNew= str.substring(1);
// regularization
boolean flag = strNew.matches("[0-9]{1,2}");
if(strNew.length()<=2&&flag){
int add = Integer.parseInt(strNew);
switch(q) {
case 'A':
loc[0] = loc[0] - add;
break;
case 'D':
loc[0] = loc[0] + add;
break;
case 'S':
loc[1] = loc[1] - add;
break;
case 'W':
loc[1] = loc[1] + add;
break;
default:
return loc;
}
}
return loc;
}
}
官方解题思路:!s.matches("[WASD][0-9]{1,2}")
减少情况分类