• 坐标移动


    题目描述

    开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。

    输入:

    合法坐标为A(或者D或者W或者S) + 数字(两位以内)

    坐标之间以;分隔。

    非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。

    下面是一个简单的例子 如:

    A10;S20;W10;D30;X;A1A;B10A11;;A10;

    处理过程:

    起点(0,0)

    +   A10   =  (-10,0)

    +   S20   =  (-10,-20)

    +   W10  =  (-10,-10)

    +   D30  =  (20,-10)

    +   x    =  无效

    +   A1A   =  无效

    +   B10A11   =  无效

    +  一个空 不影响

    +   A10  =  (10,-10)

    结果 (10, -10)

    输入描述:

    一行字符串

    输出描述:

    最终坐标,以,分隔

    输入例子:
    A10;S20;W10;D30;X;A1A;B10A11;;A10;
    输出例子:
    10,-10


     1 import java.util.Scanner;
     2 import java.util.regex.Matcher;
     3 import java.util.regex.Pattern;
     4 
     5 public class Temp7 {
     6 
     7     public static void main(String[] args) {
     8         Scanner sc = new Scanner(System.in);
     9         while (sc.hasNextLine()) {
    10             String s = sc.nextLine();
    11             String[] str = s.split(";");
    12             int sum1 = 0;
    13             int sum2 = 0;
    14             Pattern p = Pattern.compile("^[ADWS][1-9][0-9]?");
    15             for (int i = 0; i < str.length; i++) {
    16                 Matcher m = p.matcher(str[i]);
    17                 if (m.matches()) {
    18                     char c = str[i].charAt(0);
    19                     switch (c) {
    20                     case 'A':
    21                         sum1 -= Integer.valueOf(str[i].substring(1));
    22                         break;
    23                     case 'S':
    24                         sum2 -= Integer.valueOf(str[i].substring(1));
    25                         break;
    26                     case 'W':
    27                         sum2 += Integer.valueOf(str[i].substring(1));
    28                         break;
    29                     case 'D':
    30                         sum1 += Integer.valueOf(str[i].substring(1));
    31                         break;
    32                     }
    33                 } else if (str[i].length() == 0) {
    34                     //System.out.println("空不影响结果");
    35                     continue;
    36                 } else {
    37                     // System.out.println("无效字符");
    38                     continue;
    39                 }
    40             }
    41             System.out.println(sum1 + "," + sum2);
    42         }
    43     }
    44 }
  • 相关阅读:
    常见的HTTP状态码有哪些?
    使用Hbuild打包APP
    Android APK反编译
    小程序|页面跳转的方法
    vi/vim 命令
    webpack学习笔记
    egg框架学习笔记
    IOS弹出系统键盘后,页面不恢复
    js上传文件
    webpack学习笔记
  • 原文地址:https://www.cnblogs.com/crazybuddy/p/5340546.html
Copyright © 2020-2023  润新知