题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
Java解法
用了String类的很多方法:
's.split(",")'
's.subString(a, b)'
's.charAt(index)'
还有其他相关方法:
'Character.isDigit(char_c)' 判断一个字符是不是数字
'Integer.valueOf(string_s)' 将一个字符串变成整数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x=0, y=0;
String s = in.next();
String[] operations = s.split(";");
for(String op:operations) {
if(isRight(op)==true) {
switch(op.substring(0,1)) {
case "A":
if(op.length()==2) {
x -= Integer.valueOf(op.substring(1,2));
}
if(op.length()==3) {
x -= Integer.valueOf(op.substring(1,3));
}
break;
case "D":
if(op.length()==2) {
x += Integer.valueOf(op.substring(1,2));
}
if(op.length()==3) {
x += Integer.valueOf(op.substring(1,3));
}
break;
case "W":
if(op.length()==2) {
y += Integer.valueOf(op.substring(1,2));
}
if(op.length()==3) {
y += Integer.valueOf(op.substring(1,3));
}
break;
case "S":
if(op.length()==2) {
y -= Integer.valueOf(op.substring(1,2));
}
if(op.length()==3) {
y -= Integer.valueOf(op.substring(1,3));
}
break;
}
}
}
System.out.println(x+","+y);
in.close();
}
public static boolean isRight(String s) {
if(s.length()>3 || s.length()<=1) {
return false;
}else if(!Character.isDigit(s.charAt(1))) {
return false;
}else if(s.length()==3 && !Character.isDigit(s.charAt(2))) {
return false;
}
return true;
}
}