将带下划线的字符串转换成大写(下划线后大写)的高效方法

简介: 如test_tb_kkk_llll  转换为    TestTbKkkLlll原理:1. 判断是否包含下划线    (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();
	}

目录
相关文章
hutool 判断字符串是否全部为字母组成,包括大写和小写字母和汉字
hutool 判断字符串是否全部为字母组成,包括大写和小写字母和汉字
|
4月前
驼峰下划线互转
驼峰下划线互转
25 0
输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
7-102 单词首字母大写
7-102 单词首字母大写
93 0
|
C语言
详解:字符转换函数(大写转小写,小写转大写)
详解:字符转换函数(大写转小写,小写转大写)
218 0
详解:字符转换函数(大写转小写,小写转大写)
转换字符串的首字母为大写
转换字符串的首字母为大写
60 0
lodash转换字符串为空格分隔的大写单词
lodash转换字符串为空格分隔的大写单词
85 0
键盘获取字符串 大写变小写 小写变大写 其他保持不变
键盘获取字符串 大写变小写 小写变大写 其他保持不变
忽略大小写比较字符串大小
一般我们用 strcmpstrcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0 为止。 如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。 但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如 Hello 和 hello 在忽略字母大小写时是相等的。 请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
328 0
|
Java 数据库
实战小技巧5:驼峰与下划线互转
这个考题非常实用,特别是对于我们这些号称只需要CURD的后端开发来说,驼峰与下划线互转,这不是属于日常任务么;一般来讲db中的列名,要求是下划线格式(why? 阿里的数据库规范是这么定义的,就我感觉驼峰也没毛病),而java实体命名则是驼峰格式,所以它们之间的互转,就必然存在一个驼峰与下划线的互转 今天我们就来看一下,这两个的互转支持方式
1978 0