Java 使用 Guava Util 实现驼峰、下划线互转

简介: Java 使用 Guava Util 实现驼峰、下划线互转

在这里插入图片描述

1 自定义代码实现

1.1 驼峰转下划线

// 自定义正则表达式
private static final Pattern HUMP_PATTERN = Pattern.compile("[A-Z0-9]");

private String humpToLine(String str) {
    Matcher matcher = HUMP_PATTERN.matcher(str);
    StringBuffer sb = new StringBuffer();
    while (matcher.find()) {
        matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
    }
    matcher.appendTail(sb);
    return sb.toString();
}

1.2 下划线转驼峰

private static final char UNDERLINE = '_';

private String underlineToCamel(String param) {
    if (StringUtils.isBlank(param)) {
        return "";
    }
    int len = param.length();
    StringBuilder sb = new StringBuilder(len);
    for (int i = 0; i < len; i++) {
        char c = Character.toLowerCase(param.charAt(i));
        if (c == UNDERLINE) {
            if (++i < len) {
                sb.append(Character.toUpperCase(param.charAt(i)));
            }
        } else {
            sb.append(c);
        }
    }
    return sb.toString();
}

2 使用 Guava 实现

使用 Guava 的话需要 Maven 项目引入依赖

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>21.0</version>
</dependency>

2.1 驼峰转下划线

import com.google.common.base.CaseFormat;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

@Slf4j
public class ConvertLineToHumpTest {

    @Test
    public void convertLineToHumpTest() {
        String resultStr = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "studentName");
        log.info("  >>> 驼峰转下划线 : {}", resultStr);
    }
}
   >>> 驼峰转下划线 : student_name

2.2 下划线转驼峰

import com.google.common.base.CaseFormat;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

@Slf4j
public class ConvertHumpToLineTest {

    @Test
    public void convertHumpToLineTest() {
        String resultStr = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "student_name");
        log.info("  >>> 下划线转驼峰 : {}", resultStr);
    }
}
   >>> 下划线转驼峰 : studentName
相关文章
|
5月前
|
缓存 Java
【JAVA】基于Guava实现本地缓存
【JAVA】基于Guava实现本地缓存
81 0
|
25天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
60 5
|
24天前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
42 3
|
25天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
42 4
|
24天前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
13 2
|
26天前
|
JSON Java fastjson
java小工具util系列3:JSON和实体类转换工具
java小工具util系列3:JSON和实体类转换工具
19 2
|
2月前
|
Java 数据库
震惊!Guava Throwables 类如魔法棒般神奇,让 Java 异常处理华丽变身!
【8月更文挑战第29天】在 Java 开发中,异常处理至关重要,而 Guava 库中的 `Throwables` 类则提供了强大的异常处理工具。它包含了一系列静态方法,如 `propagateIfInstanceOf` 和 `propagateIfPossible`,可以帮助我们有条件地传播异常。此外,`getRootCause` 方法可以深入分析异常的根本原因,有助于快速定位问题所在。无论是构建大型分布式系统还是电商平台,`Throwables` 类都能显著提升异常处理的效率和准确性,使我们的程序更加稳定和可靠。
32 1
|
2月前
|
存储 缓存 监控
Java本地高性能缓存实践问题之Guava Cache被Caffeine所取代的问题如何解决
Java本地高性能缓存实践问题之Guava Cache被Caffeine所取代的问题如何解决
|
3月前
|
安全 Java Spring
Java编程问题之Guava Retrying 中的 WaitStrategy 是什么
Java编程问题之Guava Retrying 中的 WaitStrategy 是什么
|
4月前
|
Java
java实现字符串与十六进制字符串互转
java实现字符串与十六进制字符串互转