解题思路(只供参考,不是最优解 ):
- 根据输入的数据按照分隔符:存储到数组中
- 将数组通过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); } }