Google Guava学习(10)-Guava字符串工具Spiltter

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,e
4.字符串分割转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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值