[Java][Stream]中间方法的应用+筛选年龄练习

2023-12-13 05:15:59
Stream中间方法的练习
提供 李白-12 杜甫-13 李商隐-14 李清照-16 白居易-15 杜牧-16
前者为姓名 后者为年龄 我现在要求抽离出 所有姓氏为李且索引>=2的人
我们分析这个需求:
1.跳过两个人.skip
2.只筛选姓李的人-statsWith
3.抽离出年龄 ->spilt
import java.util.ArrayList;
import java.util.Collections;

public class Main{
    public static void main(String[] args){
         /*
         Stream中间方法的练习
         提供 李白-12 杜甫-13 李商隐-14 李清照-16 白居易-15 杜牧-16
         前者为姓名 后者为年龄 我现在要求抽离出 所有姓氏为李且索引>=2的人
         我们分析这个需求:
         1.跳过两个人.skip
         2.只筛选姓李的人-statsWith
         3.抽离出年龄 ->spilt
          */
        ArrayList<String> all = new ArrayList<>();
        Collections.addAll(all,"李白——12","杜甫-13","李商隐-14","李清照-16","白居易-15","杜牧-16");
        all.stream().skip(2).filter(s->s.startsWith("李")).map(s->s.split("-")[1]).forEach(s->System.out.println(s));
        //这里我们注解一下.map(s->s.split("-")[1])
        //首先 .map中s.split("-")返回一个字符串数组 这个数字只有[0]和[1]两个索引 [0]代表前者 [1]代表后者 这里我们要取年龄 自然取[1]
        //.map(s->s.split("-")[1])这个里面的“-”其实是一个正则表达式 意思是说 把用-链接的两个字符串部分分开 分别储存到[0]和[1]两个索引里面去
    }
}

文章来源:https://blog.csdn.net/qq_37511412/article/details/134960755
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。