最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)駝峰下劃線互轉(zhuǎn)的使用示例

 更新時間:2023年12月06日 09:21:43   作者:檀越劍指大廠  
駝峰和下劃線互轉(zhuǎn)場景是在不同命名規(guī)范的情況下,需要進行字段名稱的轉(zhuǎn)換,本文就來介紹一下Java實現(xiàn)駝峰下劃線互轉(zhuǎn)的使用示例,感興趣的可以了解一下

一.需求背景

1.背景

駝峰和下劃線互轉(zhuǎn)場景是在不同命名規(guī)范的情況下,需要進行字段名稱的轉(zhuǎn)換。例如,Java 中使用駝峰命名規(guī)范,而數(shù)據(jù)庫表字段通常使用下劃線命名規(guī)范。

2.實現(xiàn)方式

  • 使用 GuavaAPI 實現(xiàn)
  • 使用 hutool 工具類實現(xiàn)
  • 使用自定義的工具實現(xiàn)
  • 使用正則表達式實現(xiàn)

3.注意事項

對于駝峰和下劃線的互轉(zhuǎn),需要注意以下幾點:

  • 確定轉(zhuǎn)換方向:在進行駝峰和下劃線的互轉(zhuǎn)時,首先需要確定是將駝峰轉(zhuǎn)為下劃線,還是將下劃線轉(zhuǎn)為駝峰。
  • 字符串格式:要進行駝峰和下劃線的轉(zhuǎn)換,需要保證字符串的格式符合規(guī)范。駝峰命名法中,單詞間沒有分隔符,首字母小寫;下劃線命名法中,單詞間使用下劃線分隔,全小寫。
  • 字符串處理:對于將駝峰轉(zhuǎn)為下劃線,可以使用正則表達式或字符串處理方法,將大寫字母前插入下劃線,并將字符串轉(zhuǎn)為小寫。對于將下劃線轉(zhuǎn)為駝峰,可以使用字符串處理方法,將下劃線后的字母轉(zhuǎn)為大寫,并去掉下劃線。
  • 命名規(guī)范:在進行駝峰和下劃線的互轉(zhuǎn)時,要遵循統(tǒng)一的命名規(guī)范,以保證代碼的可讀性和一致性。
  • 注意沖突:在進行駝峰和下劃線的互轉(zhuǎn)時,要注意可能存在的命名沖突。有些字符串可能無法準(zhǔn)確轉(zhuǎn)換為駝峰或下劃線命名,可能會引起命名沖突或歧義。

在進行駝峰和下劃線的互轉(zhuǎn)時,要謹(jǐn)慎處理,遵循規(guī)范,確保轉(zhuǎn)換的準(zhǔn)確性和可靠性。

二.實現(xiàn)方式

1.Guava 實現(xiàn)

Gauva:

//駝峰轉(zhuǎn)下劃線
String ans = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "helloWorld");
System.out.println(ans);
//下劃線轉(zhuǎn)駝峰
String ans2 = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "hello_world");
System.out.println(ans2);

實戰(zhàn):

//排序:駝峰轉(zhuǎn)下劃線
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 實現(xiàn)

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)");
    /**
     * 駝峰轉(zhuǎn)下劃線
     * @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();
    }
    /**
     * 下劃線轉(zhuǎn)駝峰
     * @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 中的使用下劃線和駝峰互轉(zhuǎn)
  • map-underscore-to-camel-case 設(shè)置為 true
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true

到此這篇關(guān)于Java實現(xiàn)駝峰下劃線互轉(zhuǎn)的使用示例的文章就介紹到這了,更多相關(guān)Java 駝峰下劃線互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評論

漳平市| 三原县| 廉江市| 巢湖市| 英德市| 都匀市| 岚皋县| 新乐市| 沂源县| 迭部县| 廊坊市| 棋牌| 繁峙县| 长治县| 抚宁县| 综艺| 汽车| 鞍山市| 鄂尔多斯市| 河西区| 拜城县| 从江县| 许昌市| 鸡西市| 时尚| 百色市| 宿州市| 通州区| 玉林市| 怀化市| 和林格尔县| 湟中县| 临邑县| 宜兰市| 荥经县| 金坛市| 石渠县| 任丘市| 皮山县| 梨树县| 枣阳市|