【Java语言基础】7.3 正则表达式、Arrays类、Lambda表达式

正则表达式

  • 正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性。
  • 字符类(默认匹配一个字符)
表达式说明
[abc]只能是a,b或c
[^abc]除了a,b,c之外的任何字符
[a-zA-Z]a到z A到Z,包括(范围)
[a-d[m-p]]a到d,或m通过p([a-dm-p]联合)
[a-z&&[def]]d,e或f(交集)
[a-z&&[^bc]]a到z,除了b和c([ad-z]减法)
[a-z&&[^m-p]]a到z,除了m到p([a-lq-z]减法)
  • 预定义的字符类(默认匹配一个字符)
表达式说明
.任何字符
\d一个数字:[0-9]
\D非数字:[^0-9]
\s一个空白字符:[\t\n\x0B\f\r]
\S非空白字符:[^\s]
\w[a-zA-Z_0-9]英文、数字、下划线
\W[^\w]一个非单词字符
  • 贪婪的量词(配合匹配多个字符)
表达式说明
X?出现一次或零次
X*出现零次或多次
X+出现一次或多次
X{n}出现n次
X{n,}出现至少n次
X{n,m}出现至少n次,但不超过m次
  • 字符串对象提供了匹配正则表达式规则的API
    public boolean matches(String regex):判断是否匹配正则表达式,匹配返回true,不匹配返回false。
  • 正则表达式在字符串方法中的使用:
方法名说明
public String replaceAll(String regex,String newStr)按照正则表达式匹配的内容进行替换
public String[] split(String regex)按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组

Arrays类

  • 数组操作工具类,专门用于操作数组元素的。
  • Arrays类的常用API:
方法名说明
public static String toString(类型[] a)获取数组所有的元素内容
public static void sort(类型[] a)对数组进行默认升序排序
public static <T> void sort(类型[] a, Comparator<? super T> c)使用比较器对象自定义排序
public static int binarySearch(int[] a,int key)二分搜索数组中的数据,存在返回索引,不存在返回-1

Lambda表达式

  • Lambda表达式是JDK8开始后的一种新语法形式。
  • 作用:简化匿名内部类的代码写法。
  • Lambda表达式的简化格式:
(匿名内部类被重写方法的形参列表) -> {
	被重写方法的方法体代码。
}

注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式。

  • 什么是函数式接口?
    • 首先必须是接口、其次接口中有且仅有一个抽象方法的形式。
    • 通常我们会在接口上加上一个@FunctionalInterface注解,标记该接口必须是满足函数式接口。
  • Lambda表达式的省略写法(进一步在Lambda表达式的基础上继续简化)
    • 参数类型可以省略不写。
    • 如果只有一个参数,参数类型可以省略,同时()也可以省略。
    • 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号!
    • 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐三木Mu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值