java代码(8) ---guava字符串工具
guava字符串工具
一、Joiner
根据指定的分隔符把字符串连接在一起,MapJoiner执行相同的操作,但是针对Map的key和value
分析源码可知:该类构造方法被private修饰,无法直接通过new 实现,通过调用on传入分隔符来得到实现
案例
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 str01 =Joiner.on("|").join(it);
System.out.println(str01);
//输出结果: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> list01=Splitter.on("#").splitToList("111#222#333").stream().mapToLong(str->Long.parseLong(str)).boxed().distinct().collect(Collectors.toList());
System.out.println(list01);
}
}
运行结果:
Joiner在实际开发中,用处还是蛮大的。
二、Splitter
主要功能是拆分字符串为集合map,list等,通过分析源码可知,该工具类是通过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]
}
}
三、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
}
}
java代码(8) ---guava字符串工具的更多相关文章
- java代码之美(8)---guava字符串工具
guava字符串工具 在java开发过程中对字符串的处理是非常频繁的,google的guava工具对字符串的一些处理进行优化,使我们开发过程中让自己的代码看去更加美观,清爽. 一.Joiner 根据给 ...
- java代码行数统计工具类
package com.syl.demo.test; import java.io.*; /** * java代码行数统计工具类 * Created by 孙义朗 on 2017/11/17 0017 ...
- java代码分析及分析工具
一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复 ...
- [改善Java代码]自由选择字符串拼接方法
对一个字符串拼接有三种方法:加号,contact方法,StringBuffer或者StringBuilder的append方法,其中加号是最常用的.其他两种方式偶尔会出现在一些开源项目中,那么这三者有 ...
- JAVA代码解析String字符串(json格式的)
java解析String字符串(json格式) 需要jar包:json-lib-2.4-jdk15.jar 一. String str = "{\"name\":\&qu ...
- java反序列化字节转字符串工具
https://github.com/NickstaDB/SerializationDumper SerializationDumper-v1.1.jar 用法 : java -jar Seriali ...
- guava字符串工具 Strings 校验补全 转换null和""
public class StringsTest { public static void main(String args[]){ //1.补右全(Strings.padEnd方法) String ...
- guava字符串工具 Splitter 主要功能是拆分字符串为集合 Map
public class SplitterTest { public static void main(String args[]){ //1.拆分字符串为List集合 String str=&quo ...
- guava字符串工具--------Joiner 根据给定的分隔符把字符串连接到一起
public class JoinerTest { public static void main(String args[]){ //1.将list字符串集合,以,形式转为字符串 List<S ...
随机推荐
- 使用 PyCharm 添加 Django 项目
一.前置准备(PyCharm与Python的下载,已有的跳过) 1.首先下载PyCharm 地址:http://www.jetbrains.com/pycharm/ 2.然后下载Python 地址:h ...
- React之Antd table表格渲染按钮问题
问题描述:table表格渲染表格数据时,会自动触发操作列中Button的onClick函数,表格渲染完成后,点击Button按钮,onClick函数不能被触发. // 定义表格表头数据 问题写法: ...
- Vue element-ui date-picker 结束时间大于开始时间且开始时间小于此刻(转)
转载自:https://blog.csdn.net/wintersweetGirl/article/details/82461412 <el-form ref="form" ...
- ORACLE重做日志小结
1.Redo log特点 重做日志以磁盘I/O为主,将数据库操作记录到日志文件.(磁盘I\O性能有可能成为瓶颈) 每个实例只有一个活动的LGWR(log writer)进程,至少有两个日志组(logf ...
- 7.1 Go interface
7.1 Go interface 雨痕-Go语言笔记 接口采用了duck type方式,在程序设计中是动态类型的一种风格 `当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被 ...
- C语言qsort()函数的实现
#include <stdio.h> void qsort(void * base, int num, int width, int (*comp)(const void *, const ...
- C# 数据操作系列 - 14 深入探索SqlSugar
0.前言 在上一篇中,我们知道了如何使用SqlSugar,但是也只是简单的了解了如何使用,仿佛是套着镣铐行走,这明显不符合一个合格的程序员应有的素养.所以,这一篇我们将对其进行深挖,探究其背后的秘密. ...
- python list 与 String 互相转换
str0 = '127.0.0.1' list0 = str0.split('.') print(list0) #['127', '0', '0', '1'] str1 = '#'.join(list ...
- json字符串转List集合
public List<Map<String,PendingInfo>> jsonToList(String json){//PendingInfo可以换成其它bean类 Li ...
- CSS3新子代选择器
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型,除了<h>标签. n 可以是数字.关键词或公式 例子一 <!DOCTYPE html> & ...