002-guava String 操作
一、概述
提供了字符串基本操作
二、使用
2.1、字符串拼接
字符串的拼接采用的是Guava中的Joiner类中的方法
@Test
public void testJdkJoin() {
List<String> strList = Lists.newArrayList("1", "2", null, "3", "4");
//字符串拼接,无法跳过空字符串
String str = String.join(",", strList);
Assert.assertEquals("1,2,3,4", str);
} @Test
public void testGuavaJoin() {
List<String> strList = Lists.newArrayList("1", "2", null, "3", "4");
//字符串拼接,跳过空字符串
String str = Joiner.on(",").skipNulls().join(strList);
Assert.assertEquals("1,2,3,4", str);
}
2.2、字符串分割
@Test
public void testJdkSplit(){
String str = "1,2, 3 ,,4,";
//trimResults():去除空格,omitEmptyStrings():删除空数组
String[] strList = str.split(",");
// List<String> strList = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(str);
for (int i = 0; i < strList.length; i++) {
String s = strList[i];
System.out.println(s);
}
Assert.assertEquals(4,strList.length);
} @Test
public void testGuavaSplit(){
String str = "1,2, 3 ,,4,";
//trimResults():去除空格,omitEmptyStrings():删除空数组
List<String> strList = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(str);
strList.forEach(s -> System.out.println(s));
Assert.assertEquals(4,strList.size());
}
2.3、字符串查找【使用jdk中方法】
@Test
public void testSearch(){
String str = "abcdef";
//包含字符串cd
Assert.assertEquals(true,str.contains("cd"));
//查找以abc开头的字符串
Assert.assertEquals(true,str.startsWith("abc"));
//查找以def结尾的字符串
Assert.assertEquals(true,str.endsWith("def"));
}
2.4、字符串变换
@Test
public void testConversion(){
String str = "abcdef";
String newStr = str.replace("bcde","hello");
System.out.println(newStr);
Assert.assertEquals("ahellof",newStr);
String str2 = "ABC abc 123";
//打印数字
System.out.println(CharMatcher.digit().retainFrom(str2));
//打印小写字母
System.out.println(CharMatcher.javaLowerCase().retainFrom(str2));
//打印大写字母
System.out.println(CharMatcher.javaUpperCase().retainFrom(str2));
//打印所有字母
System.out.println(CharMatcher.javaLetter().retainFrom(str2));
//将多余的空格替换成一个空格
System.out.println(CharMatcher.whitespace().trimAndCollapseFrom(str2,' '));
//统计出现的字母
System.out.println(String.valueOf(CharMatcher.javaLetter().countIn(str2)));
}
输出
ahellof
123
abc
ABC
ABCabc
ABC abc 123
6
发的
002-guava String 操作的更多相关文章
- guava常用操作
Jack47 我思故我在 Google Java编程库Guava介绍 本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含 ...
- SHell string操作 转
本文也即<Learning the bash Shell>3rd Edition的第四章Basic Shell Programming之读书笔记之二,但我们将不限于此. String操作 ...
- Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习
/*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...
- 顺序容器----顺序容器操作,vector对象如何增长,额外的string操作,容器适配器
一.顺序容器操作 1.向顺序容器添加元素 向顺序容器(array除外)添加元素的操作: 操作 说明 c.push_back(t) 在c的尾部创建一个值为t的元素.返回void c.emplace_ba ...
- Redis一(Redis-py与String操作)
Redis 介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- Redis源码之String操作
0.前言 String操作是Redis操作中最基本的类型,包含get,set,mget,mset,append等等.下面我们会具体分析下一些命令的详细流程,特么简单的命令没有列出. 1.SET命令 2 ...
- string操作
常用的功能测试: #! -*- coding:utf-8 -*- import string s = 'Yes! This is a string' print '原字符串:' + s print ' ...
- openresty开发系列18--lua的字符串string操作
openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s)接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串.print( ...
- ZOJ2006 一道很尴尬的string操作题
ZOJ2006(最小表示法) 题目大意:输出第一个字符串的最小字典序字串的下标! 然后我居然想试一试string的erase的能力,暴力一下,然后20msAC了,尴尬的数据.......... #in ...
- linux的string操作(字符串截取,长度计算)
按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...
随机推荐
- 下载安装Zookeeper
下载地址 http://archive.apache.org/dist/zookeeper/ 进入如上的Url,选择合适的zookeeper版本,下载"tar.gz"文件: 解压安 ...
- The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more tha ...
- 02 c++的封装性 (构造和析构)
封装性: 关键字:public private protected 破坏封装:友元函数 friend 实现数据的隐藏:class类 默认是私有,结构体默认是公有. 类和对象:(定义类的注意事项) 在类 ...
- 2019-2020-1 20199301《Linux内核原理与分析》第四周作业
Week4 MenuOS的构造 一.上周复习 计算机的三大法宝: 存储程序计算机: 函数调用堆栈: 中断. 操作系统的两把宝剑: 中断上下文-保存现场和恢复现场 进程上下文 二.Linux内核源代码简 ...
- Bias vs. Variance(3)---用learning curves来判断bias/variance problem
画learning curves可以用来检查我们的学习算法运行是否正常或者用来改进我们的算法,我们经常使用learning cruves来判断我们的算法是否存在bias problem/varianc ...
- 洛谷 P1120 小木棍 dfs+剪枝
Problem Description [题目链接] https://www.luogu.com.cn/problem/P1120 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不 ...
- Kubernetes 学习24 helm入门
一.概述 1.我们此前在使用kubernetes中,无论我们使用无状态的应用程序,比如myapp,nginx.以及有状态的tomcat,redis,etcd,...等等,他们部署在k8s之上会有这样的 ...
- php+ ueditor word粘贴上传
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
- 边框图片border-image
一.定义: 在内容变化的容器里使用,边框自动填充,由于浏览器的兼容问题,没有广泛使用 border-image属性是速记属性用于设置 border-image-source, border-image ...
- 《挑战30天C++入门极限》对C++递增(增量)运算符重载的思考
对C++递增(增量)运算符重载的思考 在前面的章节中我们已经接触过递增运算符的重载,那时候我们并没有区分前递增与后递增的差别,在通常情况下我们是分别不出++a与a++的差别的,但的确他们直接是 ...