欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • java如何實現(xiàn)socket連接方法封裝

    java如何實現(xiàn)socket連接方法封裝

    這篇文章主要介紹了java實現(xiàn)socket連接方法封裝教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中FileWriter類的簡介說明

    Java中FileWriter類的簡介說明

    這篇文章主要介紹了Java中FileWriter類的簡介說明,FileWriter類提供了多種寫入字符的方法,包括寫入單個字符、寫入字符數(shù)組和寫入字符串等,它還提供了一些其他的方法,如刷新緩沖區(qū)、關(guān)閉文件等,需要的朋友可以參考下
    2023-10-10
  • java?獲取子串速率比較分析

    java?獲取子串速率比較分析

    這篇文章主要為大家介紹了java?獲取子串速率比較分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Spring?AI借助全局參數(shù)實現(xiàn)智能數(shù)據(jù)庫操作與個性化待辦管理

    Spring?AI借助全局參數(shù)實現(xiàn)智能數(shù)據(jù)庫操作與個性化待辦管理

    這篇文章主要介紹了Spring?AI借助全局參數(shù)實現(xiàn)智能數(shù)據(jù)庫操作與個性化待辦管理,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2024-11-11
  • Idea如何查看Maven依賴樹

    Idea如何查看Maven依賴樹

    這篇文章主要介紹了Idea如何查看Maven依賴樹問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java深入學(xué)習(xí)圖形用戶界面GUI之布局管理器

    Java深入學(xué)習(xí)圖形用戶界面GUI之布局管理器

    本文章向大家介紹Java GUI布局管理器,主要包括布局管理器使用實例、應(yīng)用技巧、基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下
    2022-05-05
  • SpringBoot如何通過自定義注解實現(xiàn)權(quán)限檢查詳解

    SpringBoot如何通過自定義注解實現(xiàn)權(quán)限檢查詳解

    這篇文章主要給大家介紹了關(guān)于SpringBoot如何通過自定義注解實現(xiàn)權(quán)限檢查的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 十五道tomcat面試題,為數(shù)不多的機會!

    十五道tomcat面試題,為數(shù)不多的機會!

    這篇文章主要介紹了十五道tomcat面試題,Tomcat的本質(zhì)是一個Servlet容器。一個Servlet能做的事情是:處理請求資源,并為客戶端填充response對象,需要的朋友可以參考下
    2021-08-08
  • 關(guān)于MybatisPlus配置雙數(shù)據(jù)庫驅(qū)動連接數(shù)據(jù)庫問題

    關(guān)于MybatisPlus配置雙數(shù)據(jù)庫驅(qū)動連接數(shù)據(jù)庫問題

    這篇文章主要介紹了MybatisPlus配置雙數(shù)據(jù)庫驅(qū)動連接數(shù)據(jù)庫的具體實現(xiàn),具體的業(yè)務(wù)邏輯,在service層的類或者方法上面添加@DataSource注解來指定該業(yè)務(wù)需要用到的數(shù)據(jù)源,需要的朋友可以參考下
    2022-01-01
  • 詳解Java代碼常見優(yōu)化方案

    詳解Java代碼常見優(yōu)化方案

    這篇文章主要介紹了Java代碼常見優(yōu)化方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論