java采用匈牙利命名法_【Java】工具类,如何将匈牙利命名法转换成驼峰命名法-Go语言中文社区...
一、概念介紹
1.1、匈牙利命名法:user_id,字母均小寫,不同單詞間用下劃線分割;
1.2、駝峰命名法:userId,除了第一個單詞的首字母小寫,其余單詞的首字母均大寫,單詞之間沒有符號,僅僅通過單詞首字母的大小寫區(qū)分;
1.3、帕斯卡命名法:UserId,所有單詞的首字母均大寫;
二、問題
如何將匈牙利命名法轉(zhuǎn)換成駝峰命名法?
三、思路
這里有好幾種方法,這里介紹一種:
1.首先我們要獲取匈牙利命名法的 字符串的下劃線下標(biāo)的位置,例如user_old_pwd,下劃線的下標(biāo)為:4和8;
2、將下劃線下標(biāo)后面的字母大寫;
3、替換掉下劃線;
四、代碼分析
首先,我們將字符串穿放到數(shù)組中,然后便利數(shù)據(jù),將下劃線的下標(biāo)記錄,求出下劃線后面一位的地址,然后,將下劃線后一位替換為大寫,最后替換掉
4.1、替換指定位置字符為大寫方法
/**
* 轉(zhuǎn)換制定下標(biāo)的String字符串的大小寫
*@param s 字符串
*@param location 下標(biāo)位置,第一個字符為下標(biāo)為0;
*@return String 返回替換大小寫后的String字符串
*/
public static String changeCase(String s,int location){
byte [] bytes = s.getBytes();
for(int i=0;i
if (bytes[i]>64&&bytes[i]<91&&i==location){
bytes[i] = (byte)(bytes[i]+32);
}else if(bytes[i]>96&&bytes[i]<123&&i==location) {
bytes[i] = (byte)(bytes[i]-32);
}
}
return s;
}
4.2、獲取下標(biāo)后的位置
/**
* 將匈牙利命名法轉(zhuǎn)換為駝峰命名法
* 例如user_id ----->userId
*/
public static String turnHungary2CamelCase(String s) {
int j = 0;
s = s.toLowerCase();
for (int i = 0; i < s.lastIndexOf("_"); i++) {
i = s.indexOf("_", i);
j = i + 1;
s = changeCase(s, j);
}
s = s.replace("_", "");
return s;
}
4.3、完整的測試類如下:
/**
* Created by Taozhouchuan on 18-7-16.
*/
public class TestTurnHungary2Camel {
public static void main(String[] args) {
String s = "bser_name";
s = turnHungary2CamelCase(s);
System.out.println(s);
}
/**
* 將匈牙利命名法轉(zhuǎn)換為駝峰命名法
* 例如user_id ----->userId
*/
public static String turnHungary2CamelCase(String s) {
int j = 0;
s = s.toLowerCase();
for (int i = 0; i < s.lastIndexOf("_"); i++) {
i = s.indexOf("_", i);
j = i + 1;
s = changeCase(s, j);
}
s = s.replace("_", "");
return s;
}
/**
* 轉(zhuǎn)換制定下標(biāo)的String字符串的大小寫
*@param s 字符串
*@param location 下標(biāo)位置,第一個字符為下標(biāo)為0;
*@return String 返回替換大小寫后的String字符串
*/
public static String changeCase(String s, int location) {
byte[] bytes = s.getBytes();
for (int i = 0; i < bytes.length; i++) {
if (bytes[i] > 64 && bytes[i] < 91 && i == location) {
bytes[i] = (byte) (bytes[i] + 32);
} else if (bytes[i] > 96 && bytes[i] < 123 && i == location) {
bytes[i] = (byte) (bytes[i] - 32);
}
}
return s;
}
}
開源不易,歡迎掃碼支持,掃碼領(lǐng)紅包!
總結(jié)
以上是生活随笔為你收集整理的java采用匈牙利命名法_【Java】工具类,如何将匈牙利命名法转换成驼峰命名法-Go语言中文社区...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: label标签的作用
- 下一篇: Future异步回调详解