解题思路(只供参考,不是最优解 ):
- 根据输入的数据按照分隔符:存储到数组中
- 将数组通过stream流转化成集合,根据题意知,符合条件的数据的长度为2或3,所以筛选出长度为2和3的所有数据;
- 然后通过字符串截取的方式来判断输入的字母和移动的距离,最后相加减,输出数据;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
/**
* @author Administrator
*/
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("A", "B", "C", "D", "E", "F", "E", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
String[] strings = input.split(";");
List<String> stringList = Arrays.stream(strings)
.filter(t -> !"".equals(t) && t.length() == 3 || t.length() == 2).collect(Collectors.toList());
int X = 0;
int Y = 0;
for (int k = 0; k < stringList.size(); k++) {
String getString = stringList.get(k).substring(0, 1);
String substring = stringList.get(k).substring(1, 2);
int i = 0;
if ("A".equals(getString)) {
if (stringList.get(k).length() == 3) {
String substring1 = stringList.get(k).substring(2, 3);
StringBuffer append = new StringBuffer(substring).append(substring1);
i = Integer.parseInt(String.valueOf(append));
} else {
String substring1 = stringList.get(k).substring(1, 2);
i = Integer.parseInt(substring1);
}
X -= i;
}
if ("S".equals(getString)) {
if (stringList.get(k).length() == 3) {
String substring1 = stringList.get(k).substring(2, 3);
StringBuffer append = new StringBuffer(substring).append(substring1);
i = Integer.parseInt(String.valueOf(append));
} else {
String substring1 = stringList.get(k).substring(1, 2);
i = Integer.parseInt(substring1);
}
Y -= i;
}
if ("W".equals(getString)) {
if (stringList.get(k).length() == 3) {
String substring1 = stringList.get(k).substring(2, 3);
StringBuffer append = new StringBuffer(substring).append(substring1);
i = Integer.parseInt(String.valueOf(append));
} else {
String substring1 = stringList.get(k).substring(1, 2);
i = Integer.parseInt(substring1);
}
Y += i;
}
if ("D".equals(getString)) {
if (stringList.get(k).length() == 3) {
String substring1 = stringList.get(k).substring(2, 3);
StringBuffer append = new StringBuffer(substring).append(substring1);
i = Integer.parseInt(String.valueOf(append));
} else {
String substring1 = stringList.get(k).substring(1, 2);
i = Integer.parseInt(substring1);
}
X += i;
}
}
System.out.println(X + "," + Y);
}
}

京公网安备 11010502036488号