Java字符串駝峰與下?lián)Q線格式轉換如何實現(xiàn)
更新時間:2020年11月09日 09:36:38 作者:羊37
這篇文章主要介紹了Java字符串駝峰與下?lián)Q線格式轉換如何實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
下面是自己寫的三個方法,直接類名.方法即可調用,注意此處未做異常處理.
1.下劃線轉駝峰 lowerLineToHump()
2.首字母大寫 capitalizeTheFirstLetter()
3.駝峰轉下劃線 humpToLowerLine()
package yang.demo.justwrite;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Description: 變量名轉換
* @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) {
//拆分成數組
String[] eachStr = lowerLineAndUppercaseStr.split("_");
StringBuilder resStr = new StringBuilder();
String firstStr = "";
String tempStr = "";
for (int i = 0; i < eachStr.length; i++) {
//第一個數組全部小寫
if (i == 0) {
firstStr = eachStr[0].toLowerCase();
resStr.append(firstStr);
} else {
//以后的數組首字母大寫
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: 駝峰 -> 下劃線格式 默認小寫,存在第二個形參且為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 轉為大寫
if (defaultUppercaseAndTrueLowercase.length>=1 && defaultUppercaseAndTrueLowercase[0]){
return sb.toString().toUpperCase();
}
return sb.toString();
}
}
輸出結果
nameAndAddress
Name
name_and_address
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
MyBatis-Plus攔截器實現(xiàn)數據權限控制的方法
MyBatis-Plus是一款基于MyBatis的增強工具,它提供了一些便捷的功能和增強的查詢能力,數據權限控制是在系統(tǒng)中對用戶訪問數據進行限制的一種機制,這篇文章主要給大家介紹了關于MyBatis-Plus攔截器實現(xiàn)數據權限控制的相關資料,需要的朋友可以參考下2024-01-01
SpringBoot靜態(tài)資源css,js,img配置方案
這篇文章主要介紹了SpringBoot靜態(tài)資源css,js,img配置方案,下文給大家分享了三種解決方案,需要的朋友可以參考下2017-07-07
基于JAVA中Jersey處理Http協(xié)議中的Multipart的詳解
之前在基于C#開發(fā)彩信用最原始的StringBuilder拼接字符串方式處理過Multipart?,F(xiàn)在在做一個項目的時候,由于之前的技術路線都是使用Jersey處理Http這塊,為了保持技術路線一致,研究了一下如何使用Jersey處理Http協(xié)議中的Multipart2013-05-05
SpringSecurity之SecurityContextHolder使用解讀
這篇文章主要介紹了SpringSecurity之SecurityContextHolder使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03

