Guava:Strings 字符串处理工具

简介

StringCharSequence 实例有关的静态实用程序方法。

类方法说明

官方文档:Strings (Guava: Google Core Libraries for Java 27.0.1-jre API)

方法名称 方法说明
commonPrefix(CharSequence a, CharSequence b) 返回共同的前缀字符串.
commonSuffix(CharSequence a, CharSequence b) 返回共同的后缀字符串.
emptyToNull(@Nullable String string) 返回字符串非空字符串,返回原字符串。否则,返回null.
isNullOrEmpty(@Nullable String string) 判断字符串是不是null或者空字符串.
lenientFormat(@Nullable String template, Object... args) 返回给定的模板字符串,每次出现的"%s"都替换为args中对应的参数值; 或者,如果占位符和参数计数不匹配,则返回该字符串形式.
nullToEmpty(@Nullable String string) 返回字符串非null,返回原字符串。否则返回空字符串.
padEnd(String string, int minLength, char padChar) 返回字符串,长度最少是minLength,长度不够的话用重复的padChar填充.
padStart(String string, int minLength, char padChar) 返回字符串,长度最少是minLength,长度不够的话用重复的padChar填充.
repeat(String string, int count) 返回string重复count次.

使用Demo

java 复制代码
import com.google.common.base.Strings;
import org.junit.Test;

/**
 * Strings 字符串处理
 */
public class StringsTest {

    @Test
    public void strings() {
        //1.判空
        System.out.println(Strings.isNullOrEmpty("")); // true
        System.out.println(Strings.isNullOrEmpty(null)); // true
        System.out.println(Strings.isNullOrEmpty("hello")); // false

        //2.将null转化为""
        System.out.println(Strings.nullToEmpty(null)); // ""

        //3.追加字符
        // 从尾部不断补充T只到总共8个字符,如果源字符串已经达到或操作,则原样返回。类似的有padStart
        System.out.println(Strings.padEnd("hello", 8, 'T')); // helloTTT

        //4.统计出现次数
        //返回string重复count次.
        System.out.println(Strings.repeat("hello", 3)); //hellohellohello

        //5.模板填充
        //返回给定的模板字符串,每次出现的"%s"都替换为args中对应的参数值; 或者,如果占位符和参数计数不匹配,则返回该字符串形式.
        String[] args = {"a", "b", "c"};
        System.out.println(Strings.lenientFormat("hi,%s,hello,%s,jack,%s", args));//hi,a,hello,b,jack,c

        String[] longArgs = {"a", "b", "c", "b"};
        System.out.println(Strings.lenientFormat("hi,%s,hello,%s,jack,%s", longArgs));//hi,a,hello,b,jack,c [b]

        String[] shortArgs = {"a", "b"};
        System.out.println(Strings.lenientFormat("hi,%s,hello,%s,jack,%s", shortArgs));//hi,a,hello,b,jack,%s

        //6.找寻相同前/后缀
        System.out.println(Strings.commonPrefix("Hello", "Het"));    // He
        System.out.println(Strings.commonPrefix("Hello", "Hit"));    // H
        System.out.println(Strings.commonPrefix("Hello", "hit"));    // 空
        System.out.println(Strings.commonPrefix("Hello", "Xit"));    // 空
        System.out.println(Strings.commonSuffix("world", "xid"));    // d
        System.out.println(Strings.commonSuffix("world", "xic"));    // 空
    }

}
相关推荐
R-sz几秒前
如何将json行政区划导入数据库,中国行政区域数据(省市区县镇乡村五级联动)
java·数据库·json
定仙游45315 分钟前
Java StringBuilder 超详细讲解
java
haiyu柠檬16 分钟前
IDEA和VSCode中好用的插件推荐
java·vscode·intellij-idea
怜淇22 分钟前
docker拉取openjdk8:jre失败
java·docker·容器
降临-max38 分钟前
JavaWeb企业级开发---Mybatis
java·开发语言·笔记·学习·mybatis
好好研究1 小时前
SpringBoot注解的作用
java·spring boot·spring
Libby博仙1 小时前
Spring Boot 条件化注解深度解析
java·spring boot·后端
我是小疯子662 小时前
深入解析C++右值引用与移动语义
java·开发语言·算法
better_liang2 小时前
每日Java面试场景题知识点之-JUC锁的底层原理
java·并发编程·juc·锁机制·reentrantlock·readwritelock·底层原理
悟能不能悟2 小时前
Elastic Stack 中两种主要查询语言 KQL (Kibana Query Language) 和 Lucene 的详细对比和解释。
java·开发语言