Java下變量大小寫駝峰、大小寫下劃線、大小寫連線轉(zhuǎn)換
寫在前面
有時候需要處理對象屬性的getter、setter方法,或者將屬性與數(shù)據(jù)表字段進行相互轉(zhuǎn)換,這時候就需要用到將小寫駝峰轉(zhuǎn)換為小寫下劃線方式,當(dāng)然我們可以自己手擼一段代碼來實現(xiàn),但Google的大神們,已經(jīng)給我們提供了一個現(xiàn)成的開發(fā)包,也就是Google guava包。直接拿來主義吧!
引入guava依賴包
這個非常簡單,只需要在工程的pom.xml中引入依賴的坐標即可。
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>25.1-jre</version> </dependency>
可以做什么
變量的一些轉(zhuǎn)換處理,只需要用到博大精深的guava包中的一個枚舉類CaseFormat.class??梢钥吹皆撁杜e類有5個枚舉變量。
枚舉就是一個單例,我們可以直接使用枚舉變量的方法,因為已經(jīng)是一個單例對象了嘛!如果你還不了解單例,那這里簡單解釋一下,單例就是在一個java進程(也就是當(dāng)前工程的JVM中)只存在唯一一個對象,枚舉據(jù)說是最簡單的單例實現(xiàn)方式了。
那這幾個枚舉常量分別代表什么意思呢?
其實代碼的注釋里已經(jīng)解釋的很清楚了,不愧為大神之作??!
以CaseFormat.LOWER_HYPHEN為例,注釋如下:
/** Hyphenated variable naming convention, e.g., "lower-hyphen". */
代表連字符的變量命名規(guī)范,例如user-name,user-age等。
為了減少大家的閱讀源碼的工作量,這里把5個枚舉及意義都拿出來說一下。
枚舉變量 | 說明 |
---|---|
CaseFormat.LOWER_HYPHEN | 連字符的變量命名規(guī)范,形式lower-hyphen |
CaseFormat.LOWER_UNDERSCORE | C++變量命名規(guī)范,形式lower_underscore |
CaseFormat.LOWER_CAMEL | Java變量命名規(guī)范,形式lowerCamel |
CaseFormat.UPPER_CAMEL | Java和C++類名命名規(guī)范,形式UpperCamel |
CaseFormat.UPPER_UNDERSCORE | Java和C++常量命名規(guī)范,形式UPPER_UNDERSCORE |
一共有5個枚舉變量,通過排列組合知識,可以知道,我們可以進行變量轉(zhuǎn)換的形式總共有5*4=20種。
怎么做變量轉(zhuǎn)換
下面通過幾個典型的例子,演示怎么將一種變量命名規(guī)范轉(zhuǎn)換為另一種。
package com.chan.test; import com.google.common.base.CaseFormat; public class GuavaTest { public static void main(String[] args) { // 變量小寫連接線轉(zhuǎn)小寫駝峰 System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "user-name"));//userName // 變量小寫連接線轉(zhuǎn)小寫下劃線 System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_UNDERSCORE, "user-name"));//user_name // 變量小寫下劃線轉(zhuǎn)小寫駝峰 System.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "user_name"));//userName // 變量下劃線轉(zhuǎn)大寫駝峰 System.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "user_name"));//UserName // 變量小寫駝峰轉(zhuǎn)大寫駝峰 System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, "userName"));//UserName // 變量小寫駝峰轉(zhuǎn)小寫下劃線 System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "userName"));//user_name // 變量小寫駝峰轉(zhuǎn)小寫下劃線 System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "UserName"));//user_name // 變量小寫駝峰轉(zhuǎn)小寫連接線 System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "userName"));//user-name } }
到此這篇關(guān)于Java下變量大小寫駝峰、大小寫下劃線、大小寫連線轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Java 大小寫駝峰、大小寫下劃線、大小寫連線轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于文件上傳MultipartBody的使用方法
這篇文章主要介紹了關(guān)于文件上傳MultipartBody的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06SpringBoot如何通過Feign調(diào)用傳遞Header中參數(shù)
這篇文章主要介紹了SpringBoot通過Feign調(diào)用傳遞Header中參數(shù),本文給大家分享兩種解決方案給大家詳細講解,需要的朋友可以參考下2023-04-04基于Java的MathML轉(zhuǎn)圖片的方法(示例代碼)
最近接到一個新需求mathML轉(zhuǎn)圖片怎么實現(xiàn)呢?剛開始還真是蒙圈了,不知道怎么實現(xiàn),今天小編記錄一種基于Java的MathML轉(zhuǎn)圖片的方法,感興趣的朋友一起看看吧2021-06-06Java8學(xué)習(xí)教程之lambda表達式語法介紹
眾所周知lambda表達式是JAVA8中提供的一種新的特性,它支持Java也能進行簡單的“函數(shù)式編程”。 下面這篇文章主要給大家介紹了關(guān)于Java8學(xué)習(xí)教程之lambda表達式語法的相關(guān)資料,需要的朋友可以參考下。2017-09-09java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法
本篇文章主要介紹了java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02Java Socket設(shè)置timeout的幾種常用方式說明
這篇文章主要介紹了Java Socket設(shè)置timeout的幾種常用方式說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11Java基于SpringBoot和tk.mybatis實現(xiàn)事務(wù)讀寫分離代碼實例
這篇文章主要介紹了Java基于SpringBoot和tk.mybatis實現(xiàn)事務(wù)讀寫分離代碼實例,讀寫分離,基本的原理是讓主數(shù)據(jù)庫處理事務(wù)性增、改、刪操作,而從數(shù)據(jù)庫處理SELECT查詢操作,數(shù)據(jù)庫復(fù)制被用來把事務(wù)性操作導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫,需要的朋友可以參考下2023-10-10