Lambda语法及正则表达式

本文介绍了Lambda表达式在Java中的应用,包括其简化匿名内部类的原理,以及如何使用函数式接口、方法引用和构造器引用。还详细讲解了正则表达式的概念和在字符串处理中的使用,如`matches`、`replaceAll`和`split`方法。
摘要由CSDN通过智能技术生成

Lambda语法及正则表达式

lambda语法:
作用:用于简化匿名内部类的代码写法。
格式

public class Test {
    public static void main(String[] args) {
        //目标:认识Lambda的表达式
        //并不能简化全部匿名内部类的方法,只能简化函数接口的匿名内部类
       Swimming s=()->{
           System.out.println("学生游的贼快~~~");
       };
       s.swim();
    }
}
interface Swimming{
    void swim();
}

(被重写方法的形参列表)->{
被重写方法的方法体代码
}
什么是函数式接口?
有且仅有一个抽象方法的接口。注意:将来我们见到的大部分函数式接口,上面都可能会有一@Functionallnterface的注解,有该注解的接口就必定是函数式接口。
Lambda表达式的省略写法(进一步简化Lambda表达式的参数类型可以省略不写。
·如果只有一个参数,参数类型可以省略,同时()也可以省路。如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!此时如果这行代码是return语句,也必须去掉return不写。

静态方法的引用
类名:静态方法。
使用场景
如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用

实例方法的引用
对象名:实例方法。
使用场景
如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。

特定类型的方法引用
类型:方法
使用场景
如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。

构造器引用
类名:neW。
使用场景
如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。

就是由一些特定的字符组成,代表的是一个规则。
作用一:用于检验数据是否合法
作用二:在一段文本中查满足要求的内容。
String提供了一个匹配正则表达式的方法
public boolean matches(String regex)判断字符串是否匹配正则表达式,匹配返回true,不匹配返回false。
正则表达式的书写规则
X?
X*
[abc] :只能是a,b,或c
[^abc] :除了a,b,c之外的任何字符
[a-zA-Z] a到z A到Z,包括(范围)
[a-d[m-p]] a到d,或m到p
[a-z&& [def]]:d,e,或f(交集)
[a-z&&[^bc] :a到z,除了b和c(等同于[ad-z]) [a-z&&[^m-p]]:a到z,除了m到p
.任何字符
\d 一个数字:[0-9]
\D 非数字[^0-9]
\s一个空白字符
\S非空白字符:l
\w [a-ZA-Z_0-9]
\W 一个非单词字符

public class Test {
    public static void main(String[] args) {
        //System.out.println(checkQQ("2781570324"));
        System.out.println(checkqq1("122333rergfe"));
    }

    public static boolean checkqq1(String qq) {
        return qq != null && qq.matches("[1-9]\\d{5,19}");
    }
}
public class test2 {
    public static void main(String[] args) {
        //1.public String replaceAll(String regx,String newStr):按照正则表达式的内容进行替换
        String S1="古丽娜扎AAA迪丽热巴BBBB马尔扎哈TTT卡尔扎巴IIIII";
        System.out.println(S1.replaceAll("\\w+", "-"));
        String s2="我我我嘻嘻嘻嘻换换换换编编编编程";
        System.out.println(s2.replaceAll("(.)\\1+", "$1"));
        String S2="古丽娜扎AAA迪丽热巴BBBB马尔扎哈TTT卡尔扎巴IIIII";
        String[] names=S2.split("\\w+");
        System.out.println(Arrays.toString(names));
    }
}

public class test3 {
public static void main(String[] args) {
chechPhone();
}
public static void chechPhone(){
while (true) {
System.out.println(“请您输入您的手机号”);
Scanner sc=new Scanner(System.in);
String phone=sc.nextLine();
if (phone.matches(“(1[3-9]\d{9})|0\d{2,7}–?[1-9]\d{4,19}”)){
System.out.println(“您输入的格式正确”);
break;
}else {
System.out.println(“您输入的号码不正确”);

        }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值