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

练习:格式化打印信息

  题目:下面的字符串数组当中存有多条信息,请按照格式“ 姓名:XX。性别:XX。”的格式将信息打印出来。要求将打印姓名的动作作为第一个Consumer 接口的Lambda实例,将打印性别的动作作为第二个Consumer 接口的Lambda实例,将两个Consumer 接口按照顺序“拼接”到一起。

 1 package day01.Demo01_Day016;
 2 
 3 import java.util.function.Consumer;
 4 
 5 /*
 6         3.练习:
 7 字符串数组当中存有多条信息,请按照格式“姓名:XX。性别:XX。”格式将信息打印出来。
 8 要求将打印姓名的动作作为第一个Consumer接口的Lambda实例,
 9 将打印性别的动作作为第二个Consumer接口的Lambda实例,
10 将两个Consumer接口按照顺序“拼接”到一起。
11      */
12 public class DemoConsumer {
13     //定义一个方法,参数传递String类型的数组和两个Consumer接口,泛型使用String
14     public static void method(String[] arr,Consumer<String> con1,Consumer<String> con2){
15         //遍历字符串
16         for (String s : arr) {
17             //使用andTher方法连接两个Consumer接口,消费字符串
18             con1.andThen(con2).accept(s);
19         }
20     }
21     public static void main(String[] args) {
22         //定义一个字符串类型的数组;
23         String[] arr ={"迪丽热巴,女","古力娜扎,女","马儿扎哈,男"};
24         //调用printInfo方法,传递一个字符串数组,和两个Lambda表达式
25         method(arr,
26                 (m)->{
27                     //消费方式:对message进行切割,获取姓名,按照指定的格式输出
28                     String name =m.split(",")[0];
29                     System.out.print("姓名"+name);
30                 },
31                 (m)->{
32                     String age =m.split(",")[1];
33                     System.out.println("。性别"+age+"。");
34                 });
35     }
36 }

函数式接口Predicate接口

有时候我们需要对某种类型的数据进行判断,从而得到一个boolean值结果。这时可以使用java.util.function.Predicate<T>接口。

抽象方法:test

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

  

 1 package day01.Demo01_Day016;
 2 
 3 import java.util.function.Predicate;
 4 
 5 /*
 6         java.util.function.Predicate<T>接口。
 7 
 8         Predicate接口包含一个抽象方法
 9         boolean test(T t):用来对指定数据类型数据进行判断的方法
10             结果:
11                 符合条件,:返回true
12                 不符合条件:返回false
13      */
14 public class Demo01Predicate {
15     /*
16         定义一个方法
17         参数传递一个String;类型的字符串
18         传递一个Predicate接口,泛型使用String
19         使用Predicate中的方法test对字符串进行判断,并把判断的结果返回
20      */
21         public static boolean checkString(String s, Predicate<String> pre){
22             return pre.test(s);
23         }
24 
25     public static void main(String[] args) {
26         //定义一个字符串
27         String s ="wuyi";
28         /*
29         boolean b =checkString(s,(String str)->{
30             //对参数传递的字符串进行判断,判断字符串的长度是否大于5,并把判断结果返回
31             return str.length()>5;
32         });
33          */
34         //优化Lambda表达式
35         boolean b =checkString(s,str->str.length()>5);
36         System.out.println(b);
37     }
38 }

 

  

 

 

posted @ 2022-10-11 10:40  zj勇敢飞,xx永相随  阅读(22)  评论(0编辑  收藏  举报