美文网首页java
Guava工具类对字符串操作的优化

Guava工具类对字符串操作的优化

作者: singlezero | 来源:发表于2019-04-23 10:27 被阅读0次

最近工作中发现对字符串的操作比较多,之前拼接字符串一直使用StringBuilder,后来发现guava提供了Joiner这样的工具,拼接字符串甚至是list,map,String 三者的相互转换的方法也有.下面就是我做的一个整理,请大神不吝指教.

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.StringJoiner;

/**
 * @author yihur
 * @description 测试map, list拼接
 * @date 2019/4/19
 */
public class TestMapAndList {


    private Map<String, String> map;

    private List<Object> list;

    @Before
    public void before_map_new_hashMap() {
        //用guava的方法创建HashMap,这样初始化的时候需要制定HashMap的大小,一般大小指定为:(长度/0.75)+1
        //这样指定大小,创建的好处了以避免HashMap的频繁的扩容导致性能的损耗
        map = Maps.newHashMapWithExpectedSize(6);
        map.put("go", "123");
        map.put("python", "123");
        map.put("java", "123");
        map.put("c++", "123");
        System.out.println(map.toString());
    }

    @Before
    public void before_list_new_arraylist() {
        list = new ArrayList<>();
        list.add(null);
        list.add("陕西省");
        list.add(123456);
        list.add(true);
    }

    @Test
    public void string_joiner_java_test() {
        //StringJoiner一些情况下可以代替StringBuilder
        StringJoiner sj = new StringJoiner("Hollis");
        sj.add("go");
        sj.add("python");
        System.out.println(sj.toString());

        //拼接的时候加上前后的标志位
        StringJoiner stringJoiner = new StringJoiner(":", "[", "]");
        stringJoiner.add("c++").add("go").add("Java").add("python");
        System.out.println(stringJoiner.toString());

        List<String> list = ImmutableList.of("c++", "go", "Java");
        //list拼接字符串,java方法
        String collect = String.join(",", list);
        System.out.println(collect);
        //list拼接字符串,guava方法
        String join = Joiner.on(",").join(list);
        System.out.println(join);
    }

    @Test
    public void test_list_guava_joiner() {

        //忽略Null
        String join = Joiner.on(",").skipNulls().join(list);
        System.out.println(join);
        //用其他值代替null
        String join1 = Joiner.on(",").useForNull("未填写").join(list);
        System.out.println(join1);

        //字符串拼接成list,并忽略空字符串
        String str = "java, , python, go";
        List<String> stringList = Splitter.on(",").omitEmptyStrings().trimResults().splitToList(str);
        System.out.println(stringList);
    }

    @Test
    public void test_map_guava_joiner() {

        //拼接map
        String join = Joiner.on(",").withKeyValueSeparator("=").join(map);
        System.out.println(join);

        //分隔字符串生成map
        String str = "id=123&name=green&age=10";
        Map<String, String> join1 = Splitter.on("&").withKeyValueSeparator("=").split(str);
        System.out.println(join1.toString());
    }
}

相关文章

  • Guava工具类对字符串操作的优化

    最近工作中发现对字符串的操作比较多,之前拼接字符串一直使用StringBuilder,后来发现guava提供了Jo...

  • Google Guava 字符串处理

    为了方便我们对字符串的处理,Guava给我们提供了好多很方便的工具类,接下来我们对Guava里面字符串相关的...

  • Guava字符串拼接工具类

    Guava字符串拼接工具类 Joiner和Splitter 算是一个比较有意思的工具类了,可以实现字符串的分割和容...

  • Google Guava IO 操作

    关于IO操作Guava给我们提供了很多工具类,大大提高了我们开发效率.下面我们将对Guava IO 提供的相...

  • Guava工具类

    Guava工具类 简介 Guava 是Google基于java1.6开发的工具扩展库。 主要包括: annotat...

  • java常用类库

    commons-lang(常用工具集合包) commons-io(io操作类库) guava jsch(远程执行命...

  • 优化你的代码

    优化代码结构之写个公共工具来关闭流 最近在看Guava的文件流相关的源码时,偶尔看到了Files工具类中是如何关闭...

  • [Guava] Google Guava 集合工具类

    Google Guava 集合工具类 Guava中的集合方法扩展 任何对JDK集合框架有经验的程序员都熟悉和喜欢j...

  • Guava 中的字符串工具类

    本片内容收录在我的在线笔记 java-note-for-free 中。 笔记源文件在 gitee 中。 对字符串的...

  • Java开源工具类:Guava

    Guava 介绍 Guava 是一款 Google 开源工具类,包含许多 Google 内部 Java 项目依赖的...

网友评论

    本文标题:Guava工具类对字符串操作的优化

    本文链接:https://www.haomeiwen.com/subject/tovmgqtx.html