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
相关文章
|
1月前
|
缓存 Java
【JAVA】基于Guava实现本地缓存
【JAVA】基于Guava实现本地缓存
37 0
|
7天前
|
Java
guava Splitter 与java 内置的string的split 方法的区别
guava Splitter 与java 内置的string的split 方法的区别
8 0
|
1月前
|
Java
代码实例演示Java字符串与输入流互转
代码实例演示Java字符串与输入流互转
13 1
|
1月前
|
XML Java 测试技术
Java异常处理神器:Guava Throwables类概念与实战
【4月更文挑战第29天】在Java开发中,异常处理是保证程序稳定性和可靠性的关键。Google的Guava库提供了一个强大的工具类Throwables,用于简化和增强异常处理。本篇博客将探讨Throwables类的核心功能及其在实战中的应用。
37 2
|
1月前
|
Java
Java基础知识整理,驼峰规则、流程控制、自增自减
在这一篇文章中我们总结了包括注释、关键字、运算符的Java基础知识点,今天继续来聊一聊命名规则(驼峰)、流程控制、自增自减。
40 3
|
7月前
|
存储 设计模式 缓存
Java源码分析:Guava之不可变集合ImmutableMap的源码分析
Java源码分析:Guava之不可变集合ImmutableMap的源码分析
41 0
|
1月前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
40 1
|
1月前
|
Java API Apache
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(基础编程篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(基础编程篇)
48 0
|
8月前
|
Java
【Java用法】Java中String类型和int类型互转的所有方法
【Java用法】Java中String类型和int类型互转的所有方法
85 0
|
9月前
|
JSON Java 数据格式
Java将json中key值下划线转为驼峰格式
Java将json中key值下划线转为驼峰格式
426 1