题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.util.Scanner;
public class Main { public static void main(String[] args) { //输入 Scanner sc= new Scanner(System.in); char input[]=sc.nextLine().toCharArray(); int x=0,y=0;//坐标
//指针i依次扫描char,识别到关键字wsad时,指针j向前查看是否为合法数字,是,执行坐标变换,否,i继续向前扫描
for (int i = 0; i < input.length;i++) {
int j=0;//i,j是两个指针
int result,ten,one;
if (input[i]=='W'){
j=i+1;
result=0;
if (Character.isDigit(input[j])){//第一位
ten=Character.getNumericValue(input[j]);
j++;
if (Character.isDigit(input[j])){//第二位
one=Character.getNumericValue(input[j]);
j++;
if (input[j]==';') {//第三位
result=10*ten+one;
}
else continue;
}
else if (input[j]==';')result=ten;
else continue;
}
y+=result;
}
if (input[i]=='S'){
j=i+1;
result=0;
if (Character.isDigit(input[j])){//第一位
ten=Character.getNumericValue(input[j]);
j++;
if (Character.isDigit(input[j])){//第二位
one=Character.getNumericValue(input[j]);
j++;
if (input[j]==';') {//第三位
result=10*ten+one;
}
else continue;
}
else if (input[j]==';')result=ten;
else continue;
}
y-=result;
}
if (input[i]=='A'){
j=i+1;
result=0;
if (Character.isDigit(input[j])){//第一位
ten=Character.getNumericValue(input[j]);
j++;
if (Character.isDigit(input[j])){//第二位
one=Character.getNumericValue(input[j]);
j++;
if (input[j]==';') {//第三位
result=10*ten+one;
}
else continue;
}
else if (input[j]==';')result=ten;
else continue;
}
x-=result;
}
if (input[i]=='D'){
j=i+1;
result=0;
if (Character.isDigit(input[j])){//第一位
ten=Character.getNumericValue(input[j]);
j++;
if (Character.isDigit(input[j])){//第二位
one=Character.getNumericValue(input[j]);
j++;
if (input[j]==';') {//第三位
result=10*ten+one;
}
else continue;
}
else if (input[j]==';')result=ten;
else continue;
}
x+=result;
}
while(input[i]!=';'){
i++;
}
}
//输出
System.out.println(x+","+y);
}
}