Function<T,R>函数的使用
概述
以图文和内容形式讲解代码
定义一个FunctionDemo类
package Demo;
import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;
public class FunctionDemo {
public static void main(String[] args) {
// convert("12345",s->Integer.parseInt(s));//该方法只能是字符串的数字
// convert(100,i->String.valueOf(i+566));
convert("566",s->Integer.parseInt(s),i->String.valueOf(i+100));
}
private static void convert(String s, Function<String,Integer> f){
int apply = f.apply(s);
System.out.println(apply);
}
private static void convert(Integer i, Function<Integer,String> f){
String apply = f.apply(i);
System.out.println(apply);
}
//输入一个566字符串返回整型,然后再加一个数变为字符串,并将组合起来输出
private static void convert(String s, Function<String,Integer> f1,Function<Integer,String>f2){
String apply = f1.andThen(f2).apply(s);
System.out.println(apply);
}
}
输出的内容: 666
以例题形式讲解
-
练习 String s=“iKun,30” 请按照我指定的要求进行操作: 将字符串截取得到数字年份部分 将上一步的年龄字符串转换为int类型的数据 将上一步的int数据加70,得到一个int结果,返回String型,在控制台输出 请通过Function接口实现函数拼接 定义一个FunctionDemo类
package Demo;
import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;
public class FunctionDemo {
public static void main(String[] args) {
String s="iKun,30";
String s1 = s.split(",")[1];
System.out.println(s.split(",")[0]+convert(s1,ss->Integer.parseInt(ss),i->String.valueOf((i+70))));
}
private static String convert(String s,Function<String,Integer> f1,Function<Integer,String> f2){
String apply = f1.andThen(f2).apply(s);
return apply;
}
}
输出的内容为: iKun100
