Java(四):Scanner & 正则表达式

1. 章节简介

1.1 课程简介

这个系列的文章,我会把我在RIT学习的CS研究生相关课程作业分享在这里,希望能帮助有需要的童鞋。

课程名称:CSCI.605.04 - Adv OO Programming Concepts(前置课程)

任课老师:Hans-Peter Bischof


作业链接传送门

本章学习笔记传送门

学习建议:本章学习的内容都需要掌握;

※ 注意:本系列的文章大部分内容都是英文文献和资料,对英文阅读的能力要求较高,如有疑问,请随时联系我哒~

1.2 本章知识要点

第一题:实现一个小游戏,游戏本身不难,就是熟悉使用Scanner类,建议大家自己理解题目写一遍,debug,实在有不懂得地方再去看答案,这样进步更大一些哦


第二题:Java正则表达式得使用,这里简单讲讲题目里面涉及到的正则知识:

starts with ’a’ followed by one digit or more digits
以a开头,后面有一个或多个数字

以…开头用^, 以…结尾用$,但需要开启多行匹配才有效果,单行匹配没有效果的。然后数字匹配:\d;匹配一个或多个:+;

"^a\\d+$"

a word with the vowels ’aeiou’ in order and each vowel can appear only once
包含由以下元音字母组成的字符串,且里面的元音字母只能出现一次

匹配某个内容的一个:[内容],不匹配某个内容中的所有:[ ^内容]。比如[a-z]匹配26个小写字母任意一个,[ ^a-z]表示不能有26个小写字母;某个内容出现零次或多次:*

"[^aeiou]*aeiou[^aeiou]*"

starts with ’a’ followed by 3 digits in the range between 1 and 3 only
以a开头,后面有三位数字,且数字范围在1~3

需要匹配每个内容规定次数:{次数},比如\d{3},表示匹配数字3次;另外,表示匹配规定次数,可以用一下规则:

规则说明
X?匹配X一次或零次
X*匹配X零次或多次
X+匹配X一次或多次
X{n}匹配X刚好n次
X{n, }匹配X至少n次
X{n,m}匹配X至少n次,但不多于m次

所以下面这些匹配规则是等价的:

规则1规则2
X?X{0, 1}
X*X{0,}
X+X{1,}
"^a[1-3]{3}$"

starts with ’a’ followed by least 3 digits in the range between 1 and 3 only
以a开头,后面至少有三位数字,且数字范围在1~3

"^a[1-3]{3,}$"

starts with ’a’ followed by between 1 and 2 digits in the range between 8 and 9 only
以a开头,后面有1 ~ 2位数字,且数字范围在8~9

"^a[8-9]{1,2}$"

includes only lower case characters, but not the character ’h’, ’p’, and ’b’
仅包含小写字母,但是不含以下三个小写字母:h, p, b

当我们要匹配一个范围的内容,但是想去除范围中的某些内容可以用[] 和 &&:

规则1规则2
[a-z&&[^bc]]匹配a~z的26个小写字母,但是不包含b和c,等价于[ad-z]
"[a-z&&[^hpb]]*"

上面的写法会包括空字符串"",如果想去除这个匹配结果,可以写成:

"[a-z&&[^hpb]]+"

2. 答案 & 代码

1)老师提供的参考答案:就在题目最下方所提供的代码;
2)自己的答案:请见这里

3. 免责声明

※ 本文之中如有错误和不准确的地方,欢迎大家指正哒~
※ 课程相关的版权归各个任课老师所有,博主自己的作业代码归博主自己所有;
※ 此项目仅用于学习交流,请不要用于任何形式的商用用途,谢谢呢;


在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值