java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java 驼峰下划线互转

Java实现驼峰下划线互转的使用示例

作者:檀越剑指大厂

驼峰和下划线互转场景是在不同命名规范的情况下,需要进行字段名称的转换,本文就来介绍一下Java实现驼峰下划线互转的使用示例,感兴趣的可以了解一下

一.需求背景

1.背景

驼峰和下划线互转场景是在不同命名规范的情况下,需要进行字段名称的转换。例如,Java 中使用驼峰命名规范,而数据库表字段通常使用下划线命名规范。

2.实现方式

3.注意事项

对于驼峰和下划线的互转,需要注意以下几点:

在进行驼峰和下划线的互转时,要谨慎处理,遵循规范,确保转换的准确性和可靠性。

二.实现方式

1.Guava 实现

Gauva:

//驼峰转下划线
String ans = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "helloWorld");
System.out.println(ans);
//下划线转驼峰
String ans2 = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "hello_world");
System.out.println(ans2);

实战:

//排序:驼峰转下划线
String sortname = query.getSortname();
if (StringUtils.isNotEmpty(sortname)) {
    try {
        BrandStoreSkuInvSalRateWeekDTO.class.getField(sortname);
        sortname = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortname);
        query.setSortname(sortname);
    } catch (NoSuchFieldException e) {
        log.error("排序字段不存在,排序字段为{}", sortname);
        query.setSortname(null);
    }
}

2.hutool 实现

Hutool:

String ans = StrUtil.toCamelCase("hello_world");
System.out.println(ans);
String ans2 = StrUtil.toUnderlineCase("helloWorld");
System.out.println(ans2);

3.自定义

工具类:

public class ColumnUtil {
    private static Pattern humpPattern = Pattern.compile("[A-Z]");
    private static Pattern linePattern = Pattern.compile("_(\\w)");
    /**
     * 驼峰转下划线
     * @param str
     * @return
     */
    public static String humpToLine(String str) {
        Matcher matcher = humpPattern.matcher(str);
        StringBuffer sb = new StringBuffer();
        while (matcher.find()) {
            matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
        }
        matcher.appendTail(sb);
        return sb.toString();
    }
    /**
     * 下划线转驼峰
     * @param str
     * @return
     */
    public static String lineToHump(String str) {
        str = str.toLowerCase();
        Matcher matcher = linePattern.matcher(str);
        StringBuffer sb = new StringBuffer();
        while (matcher.find()) {
            matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
        }
        matcher.appendTail(sb);
        return sb.toString();
    }
}

4.mybatis-plus

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true

到此这篇关于Java实现驼峰下划线互转的使用示例的文章就介绍到这了,更多相关Java 驼峰下划线互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文