常用的函数式接口_Consumer接口练习_字符串拼接输出和Predicate接口

常用的函数式接口_Consumer接口练习_字符串拼接输出

字符串数组当中存有多条信息,请按照格式“姓名:XX。性别:xx。”的格式将信息打印出来。

要求将打印姓名的动作作为第一个Consumer接口的L ambda实例, 将打印性别的动作作为

第二个consumer接口的Lambda实例,将两个consumer接口按照顺序“拼接"到一起。

public class Demo03Tests {
    //定义一个方法,参数传递String类型的数组和两个Consumer接口,泛型使用String
    public static void printInfo(String[] arr, Consumer<String> con1,Consumer<String> con2){
        //遍历数组
        for (String message : arr){
            //使用andThen方法连接两个Consumer接口,消费字符串
            con1.andThen(con2).accept(message);
        }
    }

    public static void main(String[] args) {
        //定义一个字符串类型的数组
        String[] arr = {"张三,男","李四,女","王五,男"};
        //调用方法,传递一个字符串数组,和两个Lambda表达式
        printInfo(arr,(message)->{
            //消费方式:对message进行切割,获取姓名,按照指定的格式输出
            String name = message.split(",")[0];
            System.out.print("姓名:"+name);
        },(message)->{
            //消费方式:对message进行切割,获取性别,按照指定的格式输出
            String name = message.split(",")[1];
            System.out.println("。性别"+name+"。");
        });
    }
}

常用的函数式接口_Predicate接口

有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果。这时可以使用

java.util.function.Predicate<T>接口。

抽象方法:test

Predicate接口中包含一个抽象方法:boolean test(T t)。用于条件判断的场景:

条件判断的标准是传入的Lambda表达式逻辑,只要字符串长度大于5则认为很长。

public class DPredicate {
    public static void main(String[] args) {
        //定义一个字符串
        String s = "abcde";
        //调用方法对字符串进行校验,参数传递字符串和Lambda表达式
        /*boolean b = check(s,(String str)->{
            //对参数传递的字符串进行判断,判断字符串的长度是否大于5,并返回
            return str.length()>5;
        });*/

        //优化Lambda表达式
        boolean b = check(s,str->str.length()>5);
        System.out.println(b);
    }

    public static boolean check(String s, Predicate<String> pre){
        return pre.test(s);
    }
}

 

 

posted @ 2022-07-20 14:43  魔光领域  阅读(35)  评论(0编辑  收藏  举报