字符串处理工具Guava使用总结

在java开发过程中对字符串的处理是非常频繁的,google的guava工具对字符串的一些处理进行优化,使我们开发过程中让自己的代码看去更加美观,清爽。

1:maven依赖:

      <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>

一、Joiner

根据给定的分隔符把字符串连接到一起

public class JoinerTest {

    public static void main(String args[]){

     //1、将list字符串集合,以,形式转为字符串
List<String> list =new ArrayList<String>();
list.add("xx");
list.add("zz");
list.add("dd"); //Joiner.on(",")获得Joiner实例对象
Joiner joiner = Joiner.on(",");
//joiner.join(list)传入操作的集合,并转成字符串格式
System.out.println(joiner.join(list));
//输出结果:xx,zz,dd //2、将Iterator<T>列表,转为字符串
Iterator<String> it=list.iterator();
String str=Joiner.on("|").join(it);
System.out.println(str);
//输出结果:xx|zz|dd //3、连接多个字符串
String str1=Joiner.on(",").join("小小","爸爸","妈妈","爷爷","奶奶");
System.out.println(str1);
//输出:小小,爸爸,妈妈,爷爷,奶奶 //4、连接字符串与列表
StringBuilder builder=new StringBuilder("小小最乖");
//返回StringBuilder类型
StringBuilder str2=Joiner.on(",").appendTo(builder,list);
System.out.println(str2);
//输出:小小最乖xx,zz,dd //5、跳过null值连接
list.add(null);
list.add("小小");
//skipNulls()代表去除null
String str3=Joiner.on(",").skipNulls().join(list);
System.out.println(str3);
//输出:xx,zz,dd,小小 //6、替换null值进行连接
String str4=Joiner.on(",").useForNull("空").join(list);
System.out.println(str4);
//输出:xx,zz,dd,空,小小 //7、Map的键值对打印出来
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("=");
System.out.println(mapJoiner.join(map));
//输出:key1=value1,key2=value2,key3=value3 //8、一步将字符串转为List<Long>集合(前面先转为list<String>,后面用java8特性将List<String>转为List<Long>)
List<Long> list=Splitter.on("#").splitToList("111#222#333").stream().mapToLong(str->Long.parseLong(str)).boxed().distinct().collect(Collectors.toList());
9、一步将字符串转为List<Integer>集合
List<Integer> list=Splitter.on(",").splitToList("111#222#333").stream()
        .mapToInt(str->Integer.valueOf(str)).boxed().distinct().collect(Collectors.toList());
} }

二、Splitter

主要功能是拆分字符串为集合 Map等。 通过分析源码可知,该工具类是通过on函数传入拆分字符得到实例。

public class SplitterTest {

    public static void main(String args[]){

     //1、拆分字符串为List集合
String str="小小,妈妈,爸爸,爷爷,奶奶";
Splitter splitter =Splitter.on(",");
List<String> list=splitter.splitToList(str);
System.out.println(list);
//输出:[小小, 妈妈, 爸爸, 爷爷, 奶奶] //2、忽略空字符
String str1="a,b,c,d,,f,g";
//omitEmptyStrings()代表去除空字符串
List<String> list1=Splitter.on(",").omitEmptyStrings().splitToList(str1);
System.out.println(list1);
//输出:[a, b, c, d, f, g] //3、忽略空字符且去除字符串前后空格
String str2="a,b,c,d,,f, g ";
List<String> list2=Splitter.on(",").omitEmptyStrings().trimResults().splitToList(str2);
System.out.println(list2);
//输出:[a, b, c, d, f, g]
}
}

集合分隔:

 List<List<String>> ids= Lists.partition(list, 100);

三、Strings

public class StringsTest {

    public static void main(String args[]){

     //1、补右全(Strings.padEnd方法)
String a="12345";
String b=Strings.padEnd(a, 10, 'x');
System.out.println(b);
//输出:12345xxxxx //2、补左全(Strings.padStart)
String c=Strings.padStart(a, 10, 'x');
System.out.println(c);
//输出:xxxxx12345 //3、校验空值和null
String d="";
String f=null;
boolean e=Strings.isNullOrEmpty(d);
boolean h=Strings.isNullOrEmpty(f);
System.out.println(e);
System.out.println(h);
//输出:true,true //4、如果为null 转为""
String m=null;
String n=Strings.nullToEmpty(m);
System.out.println(n);
//输出: //5、如果为"" 转为null
String j="";
String k=Strings.emptyToNull(j);
System.out.println(k);
//输出:null //6、重复字符串(Strings.repeat)
String o="123";
String p=Strings.repeat(o, 3);
System.out.println(p);
//输出:123123123 //7、获取a,b左公共部分字符串(左边第一个公共部分)
String r="abcdsfsfs";
String s="accdc3sfsd";
String t=Strings.commonPrefix(r, s);
System.out.println(t);
//输出:a //8、获取a,b右公共部分字符串
String w="faaxyz";
String x="fwefxyz";
String z=Strings.commonSuffix(w, x);
System.out.println(z);
//输出:xyz
}
}

字符串处理工具Guava使用总结的更多相关文章

  1. 用户代理字符串识别工具源码与slf4j日志使用

    User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言.浏览器插件等.UA也成为了, ...

  2. Java操作字符串的工具类

    操作字符串的工具类 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintStre ...

  3. 玩程序 之 一 . 字符串处理工具(可通过C#脚本扩展)

    平常喜欢写点小东西玩玩,既可以娱乐自己满足自己的虚荣心,又可以方便工作和学习,今天且拿出一个来,与大家一起分享!  1. 软件介绍 言归正传,先看看需求,有这样一串字符串 abc,def,ghi,jk ...

  4. java 二进制数字符串转换工具类

    java 二进制数字符串转换工具类 将二进制转换成八进制 将二进制转换成十进制 将二进制转换成十六进制 将十进制转换成二进制 package com.iteye.injavawetrust.ad; i ...

  5. Java随机字符串:随机数字字符串,工具类

    Java中生成随机数,字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串+数字等 ......... 2. 总共8种类型,具体看工具类 ...

  6. bash的内置字符串处理工具

    bash内置字符串处理工具: 1.字符串切片: ${var:offset:number} 取字符串的子串: ${var:  -length} 取字符串的最右侧的length个字符.注意:冒号右侧必须有 ...

  7. 字符串操作 — Google Guava

    前言 Java 里字符串表示字符的不可变序列,创建后就不能更改.在我们日常的工作中,字符串的使用非常频繁,熟练的对其操作可以极大的提升我们的工作效率,今天要介绍的主角是 Google 开源的一个核心 ...

  8. C# 数据库链接字符串加密工具

    有些项目尤其是WinForm或者是WPF项目,针对一些工具形式的小项目,不想软件流出去之后,懂程序的的拿到手之后一看配置文件就知道了我们数据库的用户名和密码,如果外网能访问的话,那就麻烦大了.所以这里 ...

  9. xml转Map,对象,Map转xml,inputs tram 转xml 字符串的工具类方法

    众所周知,大家在微信开发工程中,由于微信开发文档中,对于消息的接收发送都是基础xml数据的(太坑了),所以我们需要对XML进行解析转换: 1.我们先引入所需要的依赖 dom4j (解析xml的),xs ...

随机推荐

  1. uboot启动第一阶段分析

    一. uboot第一阶段初识 1.1. 什么是uboot第一阶段 1.1.1. 启动os三个阶段 1.1.1.1. bl0阶段 a. 这段代码是三星固化到iROM中,可以查看<S5PV210_i ...

  2. [BZOJ 4332] [JSOI2012]分零食(DP+FFT)

    [BZOJ 4332] [JSOI2012]分零食(DP+FFT) 题面 同学们依次排成了一列,其中有A位小朋友,有三个共同的欢乐系数O,S和U.如果有一位小朋友得到了x个糖果,那么她的欢乐程度就是\ ...

  3. jquery TAB切换小插件

    //tab切换 ;(function($, window, document, undefined) { $.fn.tab = function(options) { var defaults = { ...

  4. 计算机系统结构总结_Scoreboard and Tomasulo

    Textbook:<计算机组成与设计——硬件/软件接口>  HI<计算机体系结构——量化研究方法>          QR 超标量 前面讲过超标量的概念.超标量的目的就是实现指 ...

  5. 方法签名_spring aop_around

    //注解签名 方法签名 Signature signature = pjp.getSignature(); MethodSignature methodSignature= (MethodSignat ...

  6. es6 generator函数的异步编程

    es6 generator函数,我们都知道asycn和await是generator函数的语法糖,那么genertaor怎么样才能实现asycn和await的功能呢? 1.thunk函数    将函数 ...

  7. MySQl查询语句大全

    综合使用 查询 目录: #----综合使用 书写顺序 select distinct * from '表名' where '限制条件' group by '分组依据' having '过滤条件' or ...

  8. 统计学习方法——第二章的c++实现

    1.东西搞丢了,只写一部分 2.算法那收敛性 证明逻辑: a.γ是yi*(wopt*Xi)最小值 b.R是Xi最小值 c.k<=(R/γ)^2 难打公式,直接说,Wk由Wk-1迭代而来,所以事实 ...

  9. Python 快排

    def quick_sort(array,left,right): if left>=right: return low=left high=right key=array[low]#设置基准数 ...

  10. hdu 1506 单调栈

    #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #defin ...