重点关注
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