题解 | #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String line = "";
        Pattern pa = Pattern.compile("^[ADWS]\\d{1,2}$");
        int x = 0, y = 0;
        while ((line = bf.readLine()) != null) {
            String[] results = line.split(";");
            for (String result : results) {
                Matcher matcher = pa.matcher(result);
                if (matcher.find()) {
                    char[] chs = result.toCharArray();
                    char c = chs[0];
                    int val = 0;
                    val = Integer.parseInt(result.substring(1));
                    switch (c) {
                        case 'A':
                            x -= val;
                            break;
                        case 'D':
                            x += val;
                            break;
                        case 'W':
                            y += val;
                            break;
                        case 'S':
                            y -= val;
                            break;
                    }
                }
            }
            System.out.println(x + "," + y);
        }
    }
}
  1. 注意:字符类型char对象转化为int类型对象,会将字符对象的ASCII值转换成int类型的值。比如字符'1'转化成为int类型的值,
int i = '1';//i的值为50,而不是1
  1. 注意正则表达式,如果想明确Pattern.compile的模式是适用于整个字符串(而不是其中包含的某个子字符串适用即可),前后加上^和$表示字符串开始和结束。
  2. 正则表达式中,转义符是反斜杠“\”(反斜杠可以这么记,它与x正方向的夹角大于90度,斜率为负数,所以称之为反斜杠)。
  3. 获取字符串中的子字符串第一时间想到API为string.substring()。(两个参数是左含右不含,1个参数是此下标到末尾(包含末尾字符))
  4. ASWD具体对应的规则要看清题意,不可以自己凭看题目时的记忆,具体代码时随便写。
全部评论

相关推荐

目前感觉简历还有很多问题,希望各位能不吝赐教以及非常感谢这位老哥——@黑皮白袜臭脚体育生 的项目,学完一遍感觉受益颇丰
小菜鸡只想转正:校友,我的建议是冗余的最好去掉,突出重点,比如985,211双一流的提示,专业技能调整到个人项目之后的位置。专业技能感觉写的太细了?占用篇幅最好腾出一点给项目经历,如果没写手机号和邮箱,记得加上。
点赞 评论 收藏
分享
2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务