Java字符串駝峰與下?lián)Q線格式轉(zhuǎn)換如何實現(xiàn)
下面是自己寫的三個方法,直接類名.方法即可調(diào)用,注意此處未做異常處理.
1.下劃線轉(zhuǎn)駝峰 lowerLineToHump()
2.首字母大寫 capitalizeTheFirstLetter()
3.駝峰轉(zhuǎn)下劃線 humpToLowerLine()
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++) { //第一個數(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)小寫,存在第二個形參且為true時大寫. * @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); //如果第二個形參為true 轉(zhuǎn)為大寫 if (defaultUppercaseAndTrueLowercase.length>=1 && defaultUppercaseAndTrueLowercase[0]){ return sb.toString().toUpperCase(); } return sb.toString(); }}
輸出結(jié)果
nameAndAddressNamename_and_address
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
