Google Guava学习(10)-Guava字符串工具Spiltter
来源:互联网 发布:origin8.0作图软件 编辑:程序博客网 时间:2024/05/19 23:54
1. 功能:处理字符串拆分
2.代码:
package com.example.google.guava.demo.string;import com.google.common.base.Splitter;import java.util.List;import java.util.Map;import static com.google.common.collect.Lists.newArrayList;/** * <p> * <code>SpiltterTest</code> * </p> * Description: Splitter -> 字符串分离器 * Splitter可以支持单个字符、字符串、正则表达式或者CharMatcher实例来分割给定的字符串 * 注意: * 1.Splitter对象是immutable的,所以你必须用一个新的Splitter对象去接收 * 2.用正则表达式来分割字符串的效率很低 * 3.@GwtCompatible意思是Google Web Toolkit(GWT)兼容 * * @author Mcchu * @date 2017/10/23 10:43 */public class SpiltterTest { public static void main(String[] args) { // 1.根据某个字符分割字符串并做trim操作和过滤""的操作 String str1 = "the ,quick, , brown , fox, jumps, over, the, lazy, little dog."; Iterable<String> result1 = Splitter.on(',') // 根据逗号分割字符串 .trimResults() //对每个分割后的元素做trim操作 .omitEmptyStrings() // 过滤掉空的元素 .split( str1 ); System.out.println("1.简单使用Splitter:"+result1); //也可以使用for循环输出 // 2.根据指定长度分割字符串 String str2 = "hello world!"; Iterable<String> result2 = Splitter.fixedLength(2).split(str2); System.out.println("2.方法fixedLength的使用:"+result2); // 3.当分割的子字符串达到了limit设置的个数时,则停止分割 String str31 = "a,b,c,d,e"; Iterable<String> result31 = Splitter.on(",").limit(3).split(str31); System.out.println("3.方法limit的使用:"+result31); System.out.println(" # 如果上面看到的不直观,可以通过遍历来看,分割成了3个子字符串:"); for ( String str:result31 ){ System.out.println(" "+str); } String str32 = "a,b,,c,,,d,e"; Iterable<String> result321 = Splitter.on(",").limit(3).omitEmptyStrings().split(str32); Iterable<String> result322 = Splitter.on(",").limit(3).split(str32); System.out.println(" # 此处分割带有空的字符串,使用omitEmptyStrings:"); for ( String str: result321 ){ System.out.println(" "+str); } System.out.println(" # 此处分割带有空的字符串,且不使用omitEmptyStrings:"); for ( String str: result322 ){ System.out.println(" "+str); } // 4.字符串转List List<String> strList = newArrayList(Splitter.on(",").split("a,_b,c__")); strList.add("d_"); // 测试是否可以添加元素 System.out.println("4.字符串分割转List:"+strList); // 5.字符串转Map Map<String,String> strMap = Splitter.on(";").trimResults().withKeyValueSeparator("=").split("a=2;b=3"); System.out.println("5.字符串分割转Map:"+strMap); // 6.正则分割 String str6 = "$1$ab$5$cd7$$2h"; Iterable<String> result6 = Splitter.onPattern("[0-9]").split(str6); System.out.println("6.使用正则表达式分割字符串:"+result6); // 7.拆分字符串转不可变列表 String str7 = "a,b,c"; List<String> newStrList = Splitter.on(",").splitToList(str7); //newStrList.add("d"); // 测试是否可以添加元素,此处抛java.lang.UnsupportedOperationException System.out.println("7.分割并转定长的List集合:"+newStrList); }}3. 输出结果:
1.简单使用Splitter:[the, quick, brown, fox, jumps, over, the, lazy, little dog.]2.方法fixedLength的使用:[he, ll, o , wo, rl, d!]3.方法limit的使用:[a, b, c,d,e] # 如果上面看到的不直观,可以通过遍历来看,分割成了3个子字符串: a b c,d,e # 此处分割带有空的字符串,使用omitEmptyStrings: a b c,,,d,e # 此处分割带有空的字符串,且不使用omitEmptyStrings: a b ,c,,,d,e4.字符串分割转List:[a, _b, c__, d_]5.字符串分割转Map:{a=2, b=3}6.使用正则表达式分割字符串:[$, $ab$, $cd, $$, h]7.分割并转定长的List集合:[a, b, c]
参考:http://www.yiibai.com/guava/guava_spliter.html
阅读全文
0 0
- Google Guava学习(10)-Guava字符串工具Spiltter
- Google Guava学习(10)-Guava字符串工具Joiner
- Google Guava学习(10)-Guava字符串工具CharMatcher
- Google Guava学习(6)-Guava集合工具 Multiset
- Google Guava学习(7)-Guava集合工具 Bimap接口
- Google Guava学习(8)-Guava集合工具 Table接口
- Google Guava学习(9)-Guava Cache缓存工具(一)
- Google Guava学习(9)-Guava Cache缓存工具(二)
- google工具类guava
- Google Guava学习(1)-Guava Optional类
- Google Guava学习(2)-Guava Preconditions类
- Google Guava学习(3)-Guava Ordering类
- Google Guava学习(4)-Guava Range类
- Google Guava学习(5)-Guava Throwables类
- Guava学习——字符串工具
- Google Guava学习笔记
- google 的guava学习
- Google Guava学习笔记
- idea启动出现jvm_bind错误
- HTML5权威指南笔记:7-创建HTML文档
- ADF 动态table以及自定义搜索的实现
- NYOJ 38 布线问题
- 常见的七种Hadoop和Spark项目案例
- Google Guava学习(10)-Guava字符串工具Spiltter
- android监听Home键
- SEO独家揭秘:政府高权重锚文本虚拟外链技术!
- Ubuntu下搭建spark集群开发环境
- 模块进阶
- BASE64Decoder替代类Base64
- jsp自定义标签
- 为什么在重写 equals方法的同时必须重写 hashcode方法
- 如何遍历HttpServletRequest获取请求参数