java駝峰轉(zhuǎn)換的方法
更新時間:2018年07月09日 08:34:41 作者:小爺胡漢三
這篇文章主要為大家詳細介紹了java駝峰轉(zhuǎn)換的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java駝峰轉(zhuǎn)換的具體代碼,供大家參考,具體內(nèi)容如下
將"_"轉(zhuǎn)換成駝峰,將駝峰轉(zhuǎn)換成"_"。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 駝峰轉(zhuǎn)換
* @author 胡漢三
* 2017年1月19日 下午4:42:58
*/
public class BeanHump {
//轉(zhuǎn)變的依賴字符
public static final char UNDERLINE='_';
/**
* 將駝峰轉(zhuǎn)換成"_"(userId:user_id)
* @param param
* @return
*/
public static String camelToUnderline(String param){
if (param==null||"".equals(param.trim())){
return "";
}
int len=param.length();
StringBuilder sb=new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c=param.charAt(i);
if (Character.isUpperCase(c)){
sb.append(UNDERLINE);
sb.append(Character.toLowerCase(c));
}else{
sb.append(c);
}
}
return sb.toString();
}
/**
* 將"_"轉(zhuǎn)成駝峰(user_id:userId)
* @param param
* @return
*/
public static String underlineToCamel(String param){
if (param==null||"".equals(param.trim())){
return "";
}
int len=param.length();
StringBuilder sb=new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c=param.charAt(i);
if (c==UNDERLINE){
if (++i<len){
sb.append(Character.toUpperCase(param.charAt(i)));
}
}else{
sb.append(c);
}
}
return sb.toString();
}
/**
* 將"_"轉(zhuǎn)成駝峰(user_id:userId)
* @param param
* @return
*/
public static String underlineToCamel2(String param){
if (param==null||"".equals(param.trim())){
return "";
}
StringBuilder sb=new StringBuilder(param);
Matcher mc= Pattern.compile(UNDERLINE+"").matcher(param);
int i=0;
while (mc.find()){
int position=mc.end()-(i++);
String.valueOf(Character.toUpperCase(sb.charAt(position)));
sb.replace(position-1,position+1,sb.substring(position,position+1).toUpperCase());
}
return sb.toString();
}
/*
* 測試
*/
public static void main(String[] args) {
System.out.println(camelToUnderline("userNameAll"));
System.out.println(underlineToCamel("user_name_all"));
System.out.println(underlineToCamel2("user_name_all"));
}
}
運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java基礎(chǔ)之Math和Random類知識總結(jié)
今天帶大家來學習java的Math和Random類,文中有非常詳細的代碼示例及介紹,對正在學習java基礎(chǔ)的小伙伴們很有幫助喲,需要的朋友可以參考下2021-05-05
Spring boot詳解緩存redis實現(xiàn)定時過期方法
本篇文章分享的就是spring boot中的一個輪子,spring cache注解的方式實現(xiàn)接口數(shù)據(jù)緩存。默認的配置想非常簡單,但是有一個弊端是緩存數(shù)據(jù)為永久緩存,本次將介紹如何設置接口緩存數(shù)據(jù)的過期時間2022-07-07
SpringCloud?集成Sentinel的實戰(zhàn)教程
這篇文章主要介紹了SpringCloud?集成Sentinel的詳細過程,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-08-08
Java 數(shù)組元素倒序的三種方式(小結(jié))
這篇文章主要介紹了Java 數(shù)組元素倒序的三種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Java concurrency線程池之線程池原理(二)_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了Java concurrency線程池之線程池原理第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
給JavaBean賦默認值并且轉(zhuǎn)Json字符串的實例
這篇文章主要介紹了給JavaBean賦默認值并且轉(zhuǎn)Json字符串的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

