【高效开发工具系列】驼峰下划线互转

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一.需求背景
      • 1.背景
      • 2.实现方式
      • 3.注意事项
    • 二.实现方式
      • 1.Guava 实现
      • 2.hutool 实现
      • 3.自定义
      • 4.mybatis-plus

一.需求背景

1.背景

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

2.实现方式

  • 使用 GuavaAPI 实现
  • 使用 hutool 工具类实现
  • 使用自定义的工具实现
  • 使用正则表达式实现

3.注意事项

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

  1. 确定转换方向:在进行驼峰和下划线的互转时,首先需要确定是将驼峰转为下划线,还是将下划线转为驼峰。
  2. 字符串格式:要进行驼峰和下划线的转换,需要保证字符串的格式符合规范。驼峰命名法中,单词间没有分隔符,首字母小写;下划线命名法中,单词间使用下划线分隔,全小写。
  3. 字符串处理:对于将驼峰转为下划线,可以使用正则表达式或字符串处理方法,将大写字母前插入下划线,并将字符串转为小写。对于将下划线转为驼峰,可以使用字符串处理方法,将下划线后的字母转为大写,并去掉下划线。
  4. 命名规范:在进行驼峰和下划线的互转时,要遵循统一的命名规范,以保证代码的可读性和一致性。
  5. 注意冲突:在进行驼峰和下划线的互转时,要注意可能存在的命名冲突。有些字符串可能无法准确转换为驼峰或下划线命名,可能会引起命名冲突或歧义。

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

二.实现方式

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 中的使用下划线和驼峰互转
  • map-underscore-to-camel-case 设置为 true
mybatis-plus:configuration:map-underscore-to-camel-case: true

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/239478.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java基于springboot框架的中小企业人力资源管理系统的设计及实现+jsp

(1)员工信息管理:员工的基本信息,人员编制,岗位管理,人员流动管理(老员工转出,辞职,退休等),职工业绩考核归公管理,工人工种管理。 &…

Hdoop学习笔记(HDP)-Part.11 安装Kerberos

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

Jinja2使用Layui报 “d is not defined“

问题出现场景在使用Jinja2渲染Layui的表格时候,要做自定义templte的传入 Jinja2这块本来就是支持 {{ }} 插值的模板语言,所以这块的第一种渲染方式会冲突 所以只能用函数返回代码块进行填充,不能使用插值,只能拼接字符串 templt…

unity3d c#代码变更文本颜色,可选多参数,委托invoke延迟调用函数

[SerializeField] private Text warning; Color color ;warningOpen("注册成功", closeTime: 1.5f);warningOpen("登录成功", "green", 1.5f);public void warningOpen( string warn, string tmp"red", float closeTime5f ){warnin…

PVE系列-CT容器安装openwrt X86的极简方法

下载推荐:https://openwrt.ai/ 使用环境PVE8.0,openwrt是以上网址的最新版,内涵及其丰富组件。 问题来源: 在PVE虚拟机可以很方便的使用img文件,转换qm 成一个硬盘文件,加入到虚拟机也就完成了&#xff0c…

Docker下安装Tomcat

目录 Tomcat简介 Tomcat安装 免修改版Tomcat安装 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持&#x…

pytorch中Conv1d、Conv2d与Conv3d详解

1 卷积介绍 1.1 什么是卷积 卷积(convolution),是一种运算,你可以类比于加,减,乘,除,矩阵的点乘与叉乘等等,它有自己的运算规则,卷积的符号是星号*。表达式…

开源图床Qchan本地部署远程访问,轻松打造个人专属轻量级图床

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景,在大量开发人员的努力下,已经开发出大…

【Java Web学习笔记】 1 - HTML入门

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/html 零、网页的组成 HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片视频等。 CSS样式是表现。就像网页的外衣。比如,标题字体、…

优化问题,详解静态优化

优化问题,尤其静态优化问题,在控制系统设计中随处可见,例如基于燃油经济性和驾驶体验的多目标优化的汽车发动机 MAP 标定,基于性能指标优化的飞行器结构设计参数优化,以实验数据与模型输出匹配为目标的电池 RC 等效电路…

Hdoop学习笔记(HDP)-Part.13 安装Ranger

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

实现简单的Http服务器+SpringMvc,集成到Spring

实现简单的Http服务器SpringMvc,集成到Spring 1、Http协议 1.1、HTTP 协议请求格式 方法 空格 URL 空格 版本 回车符 换行符头部域名称:头部域值 回车符 换行符...头部域名称:头部域值 回车符 …