常用的函數式接口_Function接口練習_自定義函數模型拼接

練習:自定義函數模型拼接

題目

請使用Function 進行函數模型的拼接,按照順序需要執行的多個函數操作爲:

String str = "趙麗穎,20";

1. 將字符串截取數字年齡部分,得到字符串;
2. 將上一步的字符串轉換成爲int類型的數字;
3. 將上一步的int數字累加100,得到結果int數字。

解答

package com.learn.demo07.Function;

import java.util.function.Function;

/*
    練習:自定義函數模型拼接
    題目
    請使用Function進行函數模型的拼接,按照順序需要執行的多個函數操作爲:
        String str = "趙麗穎,20";

    分析:
    1. 將字符串截取數字年齡部分,得到字符串;
        Function<String,String> "趙麗穎,20"->"20"
    2. 將上一步的字符串轉換成爲int類型的數字;
        Function<String,Integer> "20"->20
    3. 將上一步的int數字累加100,得到結果int數字。
        Function<Integer,Integer> 20->120
 */
public class Demo03Test {
    /*
        定義一個方法
        參數傳遞包含姓名和年齡的字符串
        參數再傳遞3個Function接口用於類型轉換
     */
    public static int change(String s, Function<String,String> fun1,
                             Function<String,Integer> fun2,Function<Integer,Integer> fun3){
        //使用andThen方法把三個轉換組合到一起
        return fun1.andThen(fun2).andThen(fun3).apply(s);
    }

    public static void main(String[] args) {
        //定義一個字符串
        String str = "趙麗穎,20";
        //調用change方法,參數傳遞字符串和3個Lambda表達式
        int num = change(str,(String s)->{
            //"趙麗穎,20"->"20"
           return s.split(",")[1];
        },(String s)->{
            //"20"->20
            return Integer.parseInt(s);
        },(Integer i)->{
            //20->120
            return i+100;
        });
        System.out.println(num);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章