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)文章
深入Ajax代理的Java Servlet的實現(xiàn)詳解
本篇文章是對Ajax代理的Java Servlet的實現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06SpringBoot實現(xiàn)緩存預(yù)熱的幾種常用方案
緩存預(yù)熱是指在 Spring Boot 項目啟動時,預(yù)先將數(shù)據(jù)加載到緩存系統(tǒng)(如 Redis)中的一種機制,本文給大家介紹了SpringBoot實現(xiàn)緩存預(yù)熱的幾種常用方案,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-02-02Spring框架的環(huán)境搭建和測試實現(xiàn)
這篇文章主要介紹了Spring框架的環(huán)境搭建和測試實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10使用注解@Validated效驗VO參數(shù)是否合規(guī)
這篇文章主要為大家介紹了使用注解@Validated效驗VO參數(shù)是否合規(guī)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05使用SpringBoot與Thrift實現(xiàn)RPC通信的方式詳解
在微服務(wù)架構(gòu)的世界里,服務(wù)間的通信機制選擇成為了關(guān)鍵決策之一,RPC因其簡潔、高效的特點備受青睞,本文將詳細(xì)探討如何利用Spring?Boot和Thrift框架構(gòu)建RPC通信,讓讀者理解其內(nèi)在原理及實現(xiàn)方式,需要的朋友可以參考下2023-10-10SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理詳解
在開發(fā)Spring Boot應(yīng)用時,處理響應(yīng)結(jié)果和異常的方式對項目的可維護(hù)性、可擴展性和團(tuán)隊協(xié)作有著至關(guān)重要的影響,統(tǒng)一結(jié)果返回和統(tǒng)一異常處理是提升項目質(zhì)量的關(guān)鍵策略之一,所以本文給大家詳細(xì)介紹了SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理,需要的朋友可以參考下2024-08-08