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

题目

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

代码实现:

package com.yang.Test.ConsumerStudy;

import java.util.function.Consumer;

/**
 * # 题目
 * 下面的字符串数组当中有多条信息,请按照格式"姓名: XX 性别: XX"的格式将信息打印出来,要求将
 * 打印姓名的动作为第一个Consumer接口的Lambda实例,将打印性别的动作作为第二个Consumer接口的
 * Lambda实例,将两个Consumer接口按照顺序拼接到一起
 */
public class Test {
    //定义一个方法,参数传递String类型的数组,和两个Consumer接口
    public static void printInfo(String[] array, Consumer<String> con1, Consumer<String> con2) {
        //遍历字符串数组获取当中的每一个信息
        for (int i = 0; i < array.length; i++) {
            //使用andThen方法连接两个Consumer消费字符串
            con1.andThen(con2).accept(array[i]);
        }
    }


    public static void main(String[] args) {
        //定义一个字符串数组
        String[] array = {"迪丽热巴,女","古力娜扎,女","马尔扎哈,男"};
        //调用printInfo方法,传递一个字符串数组,和两个Lambda表达式
        printInfo(array, message -> {
            //消费方式:对message进行切割,获取姓名按照指定的格式输出
            String name = message.split(",")[0];
            System.out.print("姓名: "+name);
        }, message -> {
            System.out.print("-");
            //消费方式,对message进行分割,获取年龄按照指定的格式输出
            String sex = message.split(",")[1];
            System.out.println("性别: "+sex);
        });
    }
}

运行结果:
image

posted @ 2022-07-20 14:49  我滴妈老弟  阅读(39)  评论(0编辑  收藏  举报