1. 程式人生 > >將帶下劃線的字串轉換成大寫(下劃線後大寫)的高效方法

將帶下劃線的字串轉換成大寫(下劃線後大寫)的高效方法

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();
	}