天天看點

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

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

繼續閱讀