源码阅读之Splitter

本文介绍了Guava库中的Splitter工具类,它使用策略模式来封装不同的字符串分割算法。Splitter是不可变的,其内部类AbstractIterator是迭代器的基础,实现了核心的迭代逻辑。文章通过示例展示了Splitter的主要方法,如omitEmptyStrings()用于移除空字符串,limit()用于限制分割次数,以及如何通过CharMatcher去除子字符串的前导或尾随字符,甚至将字符串分解为Map。通过对Splitter的深入学习,读者可以更好地理解和应用字符串分割操作。
摘要由CSDN通过智能技术生成

重点关注

Strategy模式, split返回的Iterable[遍历时才进行split]     

其中的AbstractIterator类会常用到 

策略模式(Strategy):策略模式定义了一系列的算法,并将每一个算法封装起来,使每个算法可以相互替代,使算法本身和使用算法的客户端分割开来,相互独立。

Splitter 是guava 字符串分割的一个工具类。

Splitter 是immutable的。

先举个栗子:

 

final Iterable<String> splitStrs = Splitter.on(',').trimResults().split("1 , 0 0 ,2, , ,8");
List<String> splitList1 = Lists.newArrayList(splitStrs);
splitList1.stream().forEach(LOGGER::info);
LOGGER.info("--------------");

List<String> splitList2 = Splitter.on(',').trimResults().splitToList("1,0,2,,,8");
splitList2.stream().forEach(LOGGER::info);
LOGGER.info("--------------");

List<String> splitList3 = Splitter.on(',').trimResults().omitEmptyStrings().splitToList("1,0,2,,,8");
splitList3.stream().forEach(LOGGER::info);

写这个Demo的过程自己对trim

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值