标准驼峰命名转数据库字段

       碰到一个这样的场景,数据库字段bill_no 代表单据编号,然后返回前端json 是billNo,严格按照驼峰命名法,现在前端需要自定义按照箭头进行排序,但是并不知道数据库字段,所以前端只能给你"billNo desc" 这种然后我们进行对应转换进而排序。很多字段所以可以进行正则表达式进行转换 转成bill_no desc。再传入到数据库中。目前想到了这个办法,好的办法可以进行交流。

代码如下:

package com.demo.test;

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


public class TestPattern {
    /**
     * 正则匹配
     */
    private static final String PATTERN = "[A-Z]";

    public static void main(String[] args) {
        // 举例字符串
        String str = "billNo desc";
        // 创建一个正则表达式
        Pattern p = Pattern.compile(PATTERN);

        StringBuilder orderStr = new StringBuilder(str);

        // 用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.
        Matcher matcher = p.matcher(str);

        int i = 0;
        while (matcher.find()) {
            int start = matcher.start();
            int end = matcher.end();
            String s = matcher.group().toLowerCase();
            orderStr.replace(start + i, end + i, "_" + s);
            i++;
        }

        if ('_' == orderStr.charAt(0)) {
            orderStr.deleteCharAt(0);
        }
        System.out.println(orderStr);
    }


}

运行结果:

bill_no desc

对应Pattern与Matcher解释可以参考:https://www.cnblogs.com/gdwkong/articles/7782331.html

猜你喜欢

转载自blog.csdn.net/zzqcsdn123/article/details/107865973