您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java如何實(shí)現(xiàn)字符串轉(zhuǎn)為駝峰格式的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Java如何實(shí)現(xiàn)字符串轉(zhuǎn)為駝峰格式文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
字符串轉(zhuǎn)為駝峰格式 構(gòu)建工具類
package com.yt.common.util; import com.yt.common.dto.NameCode; import com.yt.exam.enums.ZyEnum; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 字符串轉(zhuǎn)為駝峰格式 構(gòu)建工具類 * @author LYY * @date 2022/07/06 */ public class RegexUtils { private static Pattern UNDERLINE_PATTERN = Pattern.compile("_([a-z])"); public static void main(String[] args) { List<NameCode> nameCode = ZyEnum.getfield(); for (int i = 0; i <nameCode.size() ; i++) { System.out.println(underlineToHump(nameCode.get(i).getField())); } } public static String underlineToHump (String str){ //正則匹配下劃線及后一個(gè)字符,刪除下劃線并將匹配的字符轉(zhuǎn)成大寫 Matcher matcher = UNDERLINE_PATTERN.matcher(str); StringBuffer sb = new StringBuffer(str); if (matcher.find()) { sb = new StringBuffer(); //將當(dāng)前匹配的子串替換成指定字符串,并且將替換后的子串及之前到上次匹配的子串之后的字符串添加到StringBuffer對(duì)象中 //正則之前的字符和被替換的字符 matcher.appendReplacement(sb, matcher.group(1).toUpperCase()); //把之后的字符串也添加到StringBuffer對(duì)象中 matcher.appendTail(sb); } else { //去除除字母之外的前面帶的下劃線 return sb.toString().replaceAll("_", ""); } return underlineToHump(sb.toString()); } }
補(bǔ)充
Java還可以實(shí)現(xiàn)字符串駝峰格式與下?lián)Q線格式的轉(zhuǎn)換
下面是實(shí)現(xiàn)代碼
package yang.demo.justwrite; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @Description: 變量名轉(zhuǎn)換 * @Class: VariableNameConversion * @Author: Yiang37 * @Date: 2020/11/3 15:23 * @Version: 1.0 */ public class VariableNameConversion { private static Pattern humpPattern = Pattern.compile("[A-Z]"); public static void main(String[] args) { System.out.println(lowerLineToHump("NAME_AND_addREsS")); System.out.println(capitalizeTheFirstLetter("nAMe")); System.out.println(humpToLowerLine("nameAndAddress")); } /** * @Description: 下劃線格式 -> 駝峰 大小寫均可 * <p> * NAME_AND_ADDRESS -> nameAndAddress * @Author: Yiang37 * @Date: 2020/11/03 15:26:02 * @Version: 1.0 * @method: lowerLineAndUppercaseToHump() * @param: [Big_] * @return: java.lang.String */ public static String lowerLineToHump(String lowerLineAndUppercaseStr) { //拆分成數(shù)組 String[] eachStr = lowerLineAndUppercaseStr.split("_"); StringBuilder resStr = new StringBuilder(); String firstStr = ""; String tempStr = ""; for (int i = 0; i < eachStr.length; i++) { //第一個(gè)數(shù)組全部小寫 if (i == 0) { firstStr = eachStr[0].toLowerCase(); resStr.append(firstStr); } else { //以后的數(shù)組首字母大寫 tempStr = capitalizeTheFirstLetter(eachStr[i]); resStr.append(tempStr); } } return resStr.toString(); } /** * @Description: 任意字符串 -> 首字母大寫 * NAME -> Name * name -> Name * NaMe -> Name * @Author: Yiang37 * @Date: 2020/11/03 16:50:16 * @Version: 1.0 * @method: capitalizeTheFirstLetter() * @param: [str] * @return: java.lang.String */ public static String capitalizeTheFirstLetter(String str) { char firstChar = str.toUpperCase().charAt(0); String nextStr = str.toLowerCase().substring(1); return firstChar + nextStr; } /** * @Description: 駝峰 -> 下劃線格式 默認(rèn)小寫,存在第二個(gè)形參且為true時(shí)大寫. * @Author: Yiang37 * @Date: 2020/11/03 17:10:25 * @Version: 1.0 * @method: humpToLowerLine() * @param: [humpStr, UppercaseZeroAndLowercaseOne] * @return: java.lang.String */ public static String humpToLowerLine(String humpStr, boolean ... defaultUppercaseAndTrueLowercase) { Matcher matcher = humpPattern.matcher(humpStr); StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase()); } matcher.appendTail(sb); //如果第二個(gè)形參為true 轉(zhuǎn)為大寫 if (defaultUppercaseAndTrueLowercase.length>=1 && defaultUppercaseAndTrueLowercase[0]){ return sb.toString().toUpperCase(); } return sb.toString(); } }
輸出結(jié)果
nameAndAddress
Name
name_and_address
關(guān)于“Java如何實(shí)現(xiàn)字符串轉(zhuǎn)為駝峰格式”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Java如何實(shí)現(xiàn)字符串轉(zhuǎn)為駝峰格式”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。