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后的字符串 ...
随机推荐
- vue input只允许输入数字
template: <input type="text" v-model="pageIndex" @keyup="inputChange&quo ...
- SQL SERVER使用 CROSS APPLY 与 OUTER APPLY 连接查询
概述 CROSS APPLY 与 OUTER APPLY 可以做到: 左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配的情况. 有两张表:Student(学生表)和 S ...
- oracle数据库锁表
在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查 ...
- [PKUSC2018]主斗地
暴搜 非常暴力的搜索,以至于我都不相信我能过. 方法是:暴力枚举所有牌型,然后暴力判断是否可行. 暴力枚举部分: 非常暴力: void dfs(int x,int l){ if(l==0){ flag ...
- vue创建组件的方式
一.直接通过Vue.extend的方式创建组件 // 通过vue.extend 来创建全局组件 var com1 = Vue.extend({ template:'<h3>这是h3组件&l ...
- Dubbbo
什么是Dubbo Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有 ...
- javaweb上传文件夹
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...
- Linux 命令集合之进程查看命令-软件安装命令-文件查找命令-主机修改命令
1.dpkg 的使用 dpkg -s ssh 查看是否按装了ssh软件 dpkg -L ssh 查看ssh安装的关联目录结构和安装位置 dpkg -i vim.deb 本地离线安装vim编辑器 apt ...
- C用malloc 向系统申请一个大小为n*4个字节的内存块
#include <stdio.h> #include <malloc.h> void out(int *p, int n){ int i; for(i=0;i<n;i+ ...
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
#include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7, ...