一、概述

  提供了字符串基本操作

二、使用

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 操作的更多相关文章

  1. guava常用操作

    Jack47 我思故我在 Google Java编程库Guava介绍 本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含 ...

  2. SHell string操作 转

    本文也即<Learning the bash Shell>3rd Edition的第四章Basic Shell Programming之读书笔记之二,但我们将不限于此. String操作 ...

  3. Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习

    /*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...

  4. 顺序容器----顺序容器操作,vector对象如何增长,额外的string操作,容器适配器

    一.顺序容器操作 1.向顺序容器添加元素 向顺序容器(array除外)添加元素的操作: 操作 说明 c.push_back(t) 在c的尾部创建一个值为t的元素.返回void c.emplace_ba ...

  5. Redis一(Redis-py与String操作)

    Redis 介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...

  6. Redis源码之String操作

    0.前言 String操作是Redis操作中最基本的类型,包含get,set,mget,mset,append等等.下面我们会具体分析下一些命令的详细流程,特么简单的命令没有列出. 1.SET命令 2 ...

  7. string操作

    常用的功能测试: #! -*- coding:utf-8 -*- import string s = 'Yes! This is a string' print '原字符串:' + s print ' ...

  8. openresty开发系列18--lua的字符串string操作

    openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s)接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串.print( ...

  9. ZOJ2006 一道很尴尬的string操作题

    ZOJ2006(最小表示法) 题目大意:输出第一个字符串的最小字典序字串的下标! 然后我居然想试一试string的erase的能力,暴力一下,然后20msAC了,尴尬的数据.......... #in ...

  10. linux的string操作(字符串截取,长度计算)

    按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...

随机推荐

  1. vue input只允许输入数字

    template: <input type="text" v-model="pageIndex" @keyup="inputChange&quo ...

  2. SQL SERVER使用 CROSS APPLY 与 OUTER APPLY 连接查询

    概述 CROSS APPLY 与 OUTER APPLY 可以做到:      左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配的情况. 有两张表:Student(学生表)和 S ...

  3. oracle数据库锁表

    在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查 ...

  4. [PKUSC2018]主斗地

    暴搜 非常暴力的搜索,以至于我都不相信我能过. 方法是:暴力枚举所有牌型,然后暴力判断是否可行. 暴力枚举部分: 非常暴力: void dfs(int x,int l){ if(l==0){ flag ...

  5. vue创建组件的方式

    一.直接通过Vue.extend的方式创建组件 // 通过vue.extend 来创建全局组件 var com1 = Vue.extend({ template:'<h3>这是h3组件&l ...

  6. Dubbbo

    什么是Dubbo Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有 ...

  7. javaweb上传文件夹

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...

  8. Linux 命令集合之进程查看命令-软件安装命令-文件查找命令-主机修改命令

    1.dpkg 的使用 dpkg -s ssh 查看是否按装了ssh软件 dpkg -L ssh 查看ssh安装的关联目录结构和安装位置 dpkg -i vim.deb 本地离线安装vim编辑器 apt ...

  9. C用malloc 向系统申请一个大小为n*4个字节的内存块

    #include <stdio.h> #include <malloc.h> void out(int *p, int n){ int i; for(i=0;i<n;i+ ...

  10. C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置

    #include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7, ...