首页 > 编程语言 > 详细

Java正则表达式实现表字段名和驼峰式命名转换

时间:2020-12-03 22:03:09      阅读:76      评论:0      收藏:0      [点我收藏+]

Java正则表达式实现表字段名和驼峰式命名转换

在开发过程中,数据表中的字段名我们通常以“_”分隔(如:user_name),而在Java的实体类中我们的字段属性通常采用驼峰式命名。这样我们就避免不了对两种格式的字段名称做转换。以下是通过正则表达式实现的两种格式的相互转换,直接上代码:

package com.tonly.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CamelCaseTest {

    public static void main(String[] args) {
        System.out.println(camelize("user_name_type"));
        System.out.println(decamelize("userNameType"));
    }

    /**
     * 数据表字段名转换为驼峰式名字的实体类属性名
     * @param tabAttr   数据表字段名
     * @return  转换后的驼峰式命名
     */
    private static String camelize(String tabAttr){
        if(isBlank(tabAttr))
            return tabAttr;
        Pattern pattern = Pattern.compile("(.*)_(\\w)(.*)");
        Matcher matcher = pattern.matcher(tabAttr);
        if(matcher.find()){
            return camelize(matcher.group(1) + matcher.group(2).toUpperCase() + matcher.group(3));
        }else{
            return tabAttr;
        }
    }

    /**
     * 驼峰式的实体类属性名转换为数据表字段名
     * @param camelCaseStr  驼峰式的实体类属性名
     * @return  转换后的以"_"分隔的数据表字段名
     */
    private static String decamelize(String camelCaseStr){
        return isBlank(camelCaseStr) ? camelCaseStr : camelCaseStr.replaceAll("[A-Z]", "_$0").toLowerCase();
    }

    /**
     * 字符串是否为空
     * @param str   待检查的字符串
     * @return  空:true; 非空:false
     */
    private static boolean isBlank(String str){
        return str == null || "".equals(str);
    }

}

测试结果:
技术分享图片

Java正则表达式实现表字段名和驼峰式命名转换

原文:https://www.cnblogs.com/tonly85/p/14081956.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!