Java字符串轉(zhuǎn)駝峰格式的方法
一、場景描述
在開發(fā)場景中,我們會遇到一些涉及字符串的轉(zhuǎn)化。例如:數(shù)據(jù)庫字段的名稱叫TYPE_NAME,但是有時候我們需要將其轉(zhuǎn)化為typeName?;蛘邔ypeName的駝峰命名方式轉(zhuǎn)化為TYPE_NAME,這時候就需要進(jìn)行轉(zhuǎn)化。因此,在這里提供了個工具類。接下來將進(jìn)行演示。
二、代碼示例
1、下劃線大寫方式命名的字符串轉(zhuǎn)換為駝峰式
示例:STUDENT_NAME轉(zhuǎn)為studentName
/**
* 將下劃線大寫方式命名的字符串轉(zhuǎn)換為駝峰式。如果轉(zhuǎn)換前的下劃線大寫方式命名的字符串為空,則返回空字符串
*
* @param name 轉(zhuǎn)換前的下劃線大寫方式命名的字符串
* @return 轉(zhuǎn)換后的駝峰式命名的字符串
*/
public static String convertToCamelCase(String name) {
StringBuilder result = new StringBuilder();
// 快速檢查
if (name == null || name.isEmpty()) {
// 沒必要轉(zhuǎn)換
return "";
} else if (!name.contains("_")) {
// 不含下劃線,僅將首字母大寫
return name.toLowerCase();
}
// 用下劃線將原始字符串分割
String[] camels = name.split("_");
for (String camel : camels) {
// 跳過原始字符串中開頭、結(jié)尾的下?lián)Q線或雙重下劃線
if (camel.isEmpty()) {
continue;
}
// 首字母大寫
result.append(camel.substring(0, 1).toUpperCase());
result.append(camel.substring(1).toLowerCase());
}
StringBuilder ret = new StringBuilder(result.substring(0, 1).toLowerCase());
ret.append(result.substring(1, result.toString().length()));
return ret.toString();
}2、駝峰式命名的字符串轉(zhuǎn)換為下劃線大寫的方式
示例:studentName轉(zhuǎn)為STUDENT_NAME
/**
* 駝峰命名的字符串轉(zhuǎn)為下劃線大寫的方式
* @param name
* @return
*/
public static String humpToUnderline(String name) {
StringBuilder result = new StringBuilder();
if (name != null && name.length() > 0) {
// 將第一個字符處理成大寫
result.append(name.substring(0, 1).toUpperCase());
// 循環(huán)處理其余字符
for (int i = 1; i < name.length(); i++) {
String s = name.substring(i, i + 1);
// 在大寫字母前添加下劃線
if (s.equals(s.toUpperCase()) && !Character.isDigit(s.charAt(0))) {
result.append("_");
}
// 其他字符直接轉(zhuǎn)成大寫
result.append(s.toUpperCase());
}
}
return result.toString();
}3、完整代碼
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class MyTest {
public static void main(String[] args) throws Exception {
System.out.println(humpToUnderline("studentName"));
System.out.println(convertToCamelCase("STUDENT_AGE"));
}
/**
* 駝峰命名的字符串轉(zhuǎn)為下劃線大寫的方式
* @param name
* @return
*/
public static String humpToUnderline(String name) {
StringBuilder result = new StringBuilder();
if (name != null && name.length() > 0) {
// 將第一個字符處理成大寫
result.append(name.substring(0, 1).toUpperCase());
// 循環(huán)處理其余字符
for (int i = 1; i < name.length(); i++) {
String s = name.substring(i, i + 1);
// 在大寫字母前添加下劃線
if (s.equals(s.toUpperCase()) && !Character.isDigit(s.charAt(0))) {
result.append("_");
}
// 其他字符直接轉(zhuǎn)成大寫
result.append(s.toUpperCase());
}
}
return result.toString();
}
/**
* 將下劃線大寫方式命名的字符串轉(zhuǎn)換為駝峰式。如果轉(zhuǎn)換前的下劃線大寫方式命名的字符串為空,則返回空字符串
*
* @param name 轉(zhuǎn)換前的下劃線大寫方式命名的字符串
* @return 轉(zhuǎn)換后的駝峰式命名的字符串
*/
public static String convertToCamelCase(String name) {
StringBuilder result = new StringBuilder();
// 快速檢查
if (name == null || name.isEmpty()) {
// 沒必要轉(zhuǎn)換
return "";
} else if (!name.contains("_")) {
// 不含下劃線,僅將首字母大寫
return name.toLowerCase();
}
// 用下劃線將原始字符串分割
String[] camels = name.split("_");
for (String camel : camels) {
// 跳過原始字符串中開頭、結(jié)尾的下?lián)Q線或雙重下劃線
if (camel.isEmpty()) {
continue;
}
// 首字母大寫
result.append(camel.substring(0, 1).toUpperCase());
result.append(camel.substring(1).toLowerCase());
}
StringBuilder ret = new StringBuilder(result.substring(0, 1).toLowerCase());
ret.append(result.substring(1, result.toString().length()));
return ret.toString();
}
}
測試:

到此這篇關(guān)于Java字符串轉(zhuǎn)駝峰格式的方法的文章就介紹到這了,更多相關(guān)Java字符串轉(zhuǎn)駝峰格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)byte[]轉(zhuǎn)List的示例代碼
byte,即字節(jié),由8位的二進(jìn)制組成。在Java中,byte類型的數(shù)據(jù)是8位帶符號的二進(jìn)制數(shù)。List?是一個接口,它繼承于Collection的接口。它代表著有序的隊列。本文將介紹如何通過java實現(xiàn)byte[]轉(zhuǎn)List,需要的可以參考一下2022-01-01
Tomcat服務(wù)器中文亂碼及Swagger亂碼相關(guān)配置解決過程
文章主要介紹了如何在IDEA中配置UTF-8編碼以解決編碼問題,并提供了設(shè)置Tomcat服務(wù)器和Swagger的一些配置建議,希望能對大家有所幫助2025-11-11
JAVA Comparator 和 Comparable接口使用方法
本文介紹了Java中Comparable和Comparator接口的使用,包括它們的定義、方法和應(yīng)用場景,Comparable用于定義類的自然排序規(guī)則,而Comparator提供了一種靈活的方式來定義對象之間的排序規(guī)則,無需修改類本身,感興趣的朋友一起看看吧2025-03-03
java并發(fā)學(xué)習(xí)之Executor源碼解析
這篇文章主要為大家介紹了java并發(fā)學(xué)習(xí)之Executor源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Java面試題及答案集錦(基礎(chǔ)題122道,代碼題19道)
本文是小編收集整理的關(guān)于java基礎(chǔ)面試題及答案集錦,基礎(chǔ)題目有122道,代碼題目有19道,非常不錯,值得收藏,需要的朋友參考下2017-01-01

