Java中駝峰命名與下劃線(xiàn)命名相互轉(zhuǎn)換
記得在thinkphp框架中,模型名會(huì)自動(dòng)轉(zhuǎn)換為對(duì)應(yīng)下劃線(xiàn)的表名,如,UserType 自動(dòng)轉(zhuǎn)化為user_type,在平時(shí)寫(xiě)程序中很多地方也會(huì)用到類(lèi)似的自動(dòng)轉(zhuǎn)換方法。
Java版本的駝峰命名與下劃線(xiàn)命名相互轉(zhuǎn)換
駝峰命名轉(zhuǎn)下劃線(xiàn)命名
方法:小寫(xiě)字母和大寫(xiě)字母緊挨一起的之間,加上分隔符,然后全部轉(zhuǎn)小寫(xiě)
示例代碼:
/** * 功能:駝峰命名轉(zhuǎn)下劃線(xiàn)命名 * 小寫(xiě)和大寫(xiě)緊挨一起的地方,加上分隔符,然后全部轉(zhuǎn)小寫(xiě) */ public static String camel2under(String c) { String separator = "_"; c = c.replaceAll("([a-z])([A-Z])", "$1"+separator+"$2").toLowerCase(); return c; }
下劃線(xiàn)命名轉(zhuǎn)駝峰命名
方法:將下劃線(xiàn)替換為空格,將字符串根據(jù)空格分割成數(shù)組,再將每個(gè)單詞首字母大寫(xiě)
示例代碼:
/** * 功能:下劃線(xiàn)命名轉(zhuǎn)駝峰命名 * 將下劃線(xiàn)替換為空格,將字符串根據(jù)空格分割成數(shù)組,再將每個(gè)單詞首字母大寫(xiě) * @param s * @return */ private static String under2camel(String s) { String separator = "_"; String under=""; s = s.toLowerCase().replace(separator, " "); String sarr[]=s.split(" "); for(int i=0;i<sarr.length;i++) { String w=sarr[i].substring(0,1).toUpperCase()+sarr[i].substring(1); under +=w; } return under; }
順便附上php版本的轉(zhuǎn)換方法:
/** * 功能:下劃線(xiàn)命名轉(zhuǎn)駝峰命名 * 方法: * step1.原字符串轉(zhuǎn)小寫(xiě),原字符串中的分隔符用空格替換,在字符串開(kāi)頭加上分隔符 * step2.將字符串中每個(gè)單詞的首字母轉(zhuǎn)換為大寫(xiě),再去空格,去字符串首部附加的分隔符. */ function camelize($uncamelized_words,$separator='_') { $uncamelized_words = $separator. str_replace($separator, " ", strtolower($uncamelized_words)); return ltrim(str_replace(" ", "", ucwords($uncamelized_words)), $separator ); } /** * 功能:駝峰命名轉(zhuǎn)下劃線(xiàn)命名 * 方法:小寫(xiě)和大寫(xiě)緊挨一起的地方,加上分隔符,然后全部轉(zhuǎn)小寫(xiě) */ function uncamelize($camelCaps,$separator='_') { return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator . "$2", $camelCaps)); }
到此這篇關(guān)于Java中駝峰命名與下劃線(xiàn)命名相互轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Java中駝峰命名與下劃線(xiàn)命名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring為java.util.Properties類(lèi)型的屬性進(jìn)行賦值過(guò)程解析
這篇文章主要介紹了spring為java.util.Properties類(lèi)型的屬性進(jìn)行賦值過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01使用mybatis切片實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程
數(shù)據(jù)權(quán)限控制需要對(duì)查詢(xún)出的數(shù)據(jù)進(jìn)行篩選,對(duì)業(yè)務(wù)入侵最少的方式就是利用mybatis或者數(shù)據(jù)庫(kù)連接池的切片對(duì)已有業(yè)務(wù)的sql進(jìn)行修改,本文給大家介紹了使用mybatis切片實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程,需要的朋友可以參考下2024-07-07PageHelper在springboot+mybatis框架中的使用步驟及原理解析
這篇文章主要介紹了PageHelper在springboot+mybatis框架中的使用步驟及原理解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Java并發(fā)編程中的CompletableFuture使用詳解
這篇文章主要介紹了Java并發(fā)編程中的CompletableFuture使用詳解,Future接口定義了操作異步任務(wù)執(zhí)行的一些方法,如獲取異步任務(wù)執(zhí)行的結(jié)果、取消任務(wù)的執(zhí)行、判斷任務(wù)是否被取消,判斷任務(wù)是否執(zhí)行完畢等,需要的朋友可以參考下2023-12-12mybatis,foreach,找不到參數(shù)報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了mybatis,foreach,找不到參數(shù)報(bào)錯(cuò)問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03java 同步器SynchronousQueue詳解及實(shí)例
這篇文章主要介紹了java 同步器SynchronousQueue詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05Java枚舉_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
enum 的全稱(chēng)為 enumeration, 是 JDK 5 中引入的新特性,存放在 java.lang 包中。這篇文章給大家介紹Java枚舉相關(guān)知識(shí),需要的的朋友參考下2017-04-04使用httpclient實(shí)現(xiàn)免費(fèi)的google翻譯api
這篇文章主要介紹了使用httpclient實(shí)現(xiàn)免費(fèi)的google翻譯api的方法,大家參考使用吧2014-01-01