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"));    // 空
    }

}
相关推荐
考虑考虑6 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯6 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路10 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
像我这样帅的人丶你还13 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
plainGeekDev15 小时前
GreenDAO → Room
android·java·kotlin
亦暖筑序20 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
敲代码的彭于晏21 小时前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev1 天前
ButterKnife → ViewBinding
android·java·kotlin
像我这样帅的人丶你还2 天前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩2 天前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构