Java實現駝峰下劃線互轉的使用示例
更新時間:2023年12月06日 09:21:43 作者:檀越劍指大廠
駝峰和下劃線互轉場景是在不同命名規(guī)范的情況下,需要進行字段名稱的轉換,本文就來介紹一下Java實現駝峰下劃線互轉的使用示例,感興趣的可以了解一下
一.需求背景
1.背景
駝峰和下劃線互轉場景是在不同命名規(guī)范的情況下,需要進行字段名稱的轉換。例如,Java 中使用駝峰命名規(guī)范,而數據庫表字段通常使用下劃線命名規(guī)范。
2.實現方式
- 使用 GuavaAPI 實現
- 使用 hutool 工具類實現
- 使用自定義的工具實現
- 使用正則表達式實現
3.注意事項
對于駝峰和下劃線的互轉,需要注意以下幾點:
- 確定轉換方向:在進行駝峰和下劃線的互轉時,首先需要確定是將駝峰轉為下劃線,還是將下劃線轉為駝峰。
- 字符串格式:要進行駝峰和下劃線的轉換,需要保證字符串的格式符合規(guī)范。駝峰命名法中,單詞間沒有分隔符,首字母小寫;下劃線命名法中,單詞間使用下劃線分隔,全小寫。
- 字符串處理:對于將駝峰轉為下劃線,可以使用正則表達式或字符串處理方法,將大寫字母前插入下劃線,并將字符串轉為小寫。對于將下劃線轉為駝峰,可以使用字符串處理方法,將下劃線后的字母轉為大寫,并去掉下劃線。
- 命名規(guī)范:在進行駝峰和下劃線的互轉時,要遵循統(tǒng)一的命名規(guī)范,以保證代碼的可讀性和一致性。
- 注意沖突:在進行駝峰和下劃線的互轉時,要注意可能存在的命名沖突。有些字符串可能無法準確轉換為駝峰或下劃線命名,可能會引起命名沖突或歧義。
在進行駝峰和下劃線的互轉時,要謹慎處理,遵循規(guī)范,確保轉換的準確性和可靠性。
二.實現方式
1.Guava 實現
Gauva:
//駝峰轉下劃線 String ans = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "helloWorld"); System.out.println(ans); //下劃線轉駝峰 String ans2 = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "hello_world"); System.out.println(ans2);
實戰(zhàn):
//排序:駝峰轉下劃線
String sortname = query.getSortname();
if (StringUtils.isNotEmpty(sortname)) {
try {
BrandStoreSkuInvSalRateWeekDTO.class.getField(sortname);
sortname = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortname);
query.setSortname(sortname);
} catch (NoSuchFieldException e) {
log.error("排序字段不存在,排序字段為{}", sortname);
query.setSortname(null);
}
}
2.hutool 實現
Hutool:
String ans = StrUtil.toCamelCase("hello_world");
System.out.println(ans);
String ans2 = StrUtil.toUnderlineCase("helloWorld");
System.out.println(ans2);
3.自定義
工具類:
public class ColumnUtil {
private static Pattern humpPattern = Pattern.compile("[A-Z]");
private static Pattern linePattern = Pattern.compile("_(\\w)");
/**
* 駝峰轉下劃線
* @param str
* @return
*/
public static String humpToLine(String str) {
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
}
matcher.appendTail(sb);
return sb.toString();
}
/**
* 下劃線轉駝峰
* @param str
* @return
*/
public static String lineToHump(String str) {
str = str.toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString();
}
}
4.mybatis-plus
- mybatis-plus 中的使用下劃線和駝峰互轉
- map-underscore-to-camel-case 設置為 true
mybatis-plus:
configuration:
map-underscore-to-camel-case: true到此這篇關于Java實現駝峰下劃線互轉的使用示例的文章就介紹到這了,更多相關Java 駝峰下劃線互轉內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring?AI借助全局參數實現智能數據庫操作與個性化待辦管理
這篇文章主要介紹了Spring?AI借助全局參數實現智能數據庫操作與個性化待辦管理,本文給大家介紹的非常詳細,需要的朋友可以參考下2024-11-11

