將帶下劃線的字串轉換成大寫(下劃線後大寫)的高效方法
阿新 • • 發佈:2018-11-11
如test_tb_kkk_llll 轉換為 TestTbKkkLlll
原理:
1. 判斷是否包含下劃線
(1) 包含:
① 按下劃線將字串切割成字串陣列
② 在迴圈裡呼叫本方法(這個字串肯定不包含下劃線)(遞迴)
(2) 不包含:
① 轉換成字元陣列
② 根據ASCII表將首字母變大寫
ASCII表中的小寫字母比大寫大32,減去32即可,看下圖即可
程式碼如下:
/** * 方法說明 :將首字母和帶 _ 後第一個字母 轉換成大寫 * * @return :String * @author :HFanss * @date :2018年5月31日下午9:52:19 */ public static String upperTable(String str) { // 字串緩衝區 StringBuffer sbf = new StringBuffer(); // 如果字串包含 下劃線 if (str.contains("_")) { // 按下劃線來切割字串為陣列 String[] split = str.split("_"); // 迴圈陣列操作其中的字串 for (int i = 0, index = split.length; i < index; i++) { // 遞迴呼叫本方法 String upperTable = upperTable(split[i]); // 新增到字串緩衝區 sbf.append(upperTable); } } else {// 字串不包含下劃線 // 轉換成字元陣列 char[] ch = str.toCharArray(); // 判斷首字母是否是字母 if (ch[0] >= 'a' && ch[0] <= 'z') { // 利用ASCII碼實現大寫 ch[0] = (char) (ch[0] - 32); } // 新增進字串快取區 sbf.append(ch); } // 返回 return sbf.toString(); }