`
E路之吕
  • 浏览: 15694 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

首字母大写(特定分隔符分割的字符串)

阅读更多

环境:MySQL 5.5

需求:将"apple,orange,water melon,banana"字符串以","分隔后各单词或词组的首字母大写

实现:写了个函数:

 

drop function if exists fun_initial_upper;
delimiter $$
create function fun_initial_upper(sourceStr varchar(255),delim varchar(10))
returns varchar(255)
begin 
	declare destinationStr varchar(255) default '';		#返回结果字符串
    declare size integer default 0;						#以delim为分隔符得到的单词或词组的个数+1
    declare tmpStr varchar(255);						#中间变量
    declare len integer default 0;						#单词或词组的长度
    declare changeDelim bool default false;				#是否改变分隔符(针对输入空格符)
    
    if delim = '' || delim regexp '[[:blank:]]'  then	#正则匹配分隔符是否是空格符
		set sourceStr = replace(sourceStr,delim,'//,');
        set delim = '//,';								#自定义分隔符				
        set changeDelim = true;
    end if;
    set sourceStr = concat(delim,sourceStr);			#初始化源字符串
    set size = length(sourceStr)-length(replace(sourceStr,delim,''))+1;
	
    loop_label: loop   
		if size > 0  then
			set tmpStr = substring_index(sourceStr,delim,size-1);
            set len = char_length(substring_index(sourceStr,delim,size)) - char_length(tmpStr)-char_length(delim);
            if len > 0 then
				set tmpStr = trim(substring(sourceStr,char_length(tmpStr)+char_length(delim)+1,len));
				set tmpStr = concat(upper(left(tmpStr,1)),substring(tmpStr,2,(length(tmpStr)-1)));
				set destinationStr = concat(delim,tmpStr,destinationStr);
            end if;
            set size = size - 1;
		else 
			leave loop_label;
		end if;
	end loop;
    set destinationStr = concat(substring(destinationStr,char_length(delim)+1,(length(destinationStr)-1)));#去除开始处的delim,与set sourceStr = concat(delim,sourceStr)相对
    if changeDelim then
		set destinationStr = replace(destinationStr,delim,' ');
    end if;
    return destinationStr;
end
$$
delimiter ;

 

 

 函数:

  • regexp:正则匹配
  • concat(str1,str2,...):字符串连接(将字符串str1,str2,...连接)
  • length(str):字符串str的长度
  • replace(str,from_str,to_str):字符串替换(字符串str中的所有的from_str的被to_str代替)
  • substring_index(str,delim,count):在定界符delim以及count出现前,从字符串str返回子字符串.若count为正值,则返回最终定界符(从左边开始)左边的一切内容.若count为负值,则返回定界符(从右边开始)右边的一切内容。
  • char_length(str):返回字符串str的字符长度
  • trim(str):字符串首尾去空值
  • upper(str):字符串各字符转化为大写
  • substring(str,pos,len):子串(获得字符串str以pos为起始位置,长度为len的子串)

 

结果:

 

 

 

 

  • 大小: 17.6 KB
分享到:
评论

相关推荐

    把英文首字母改成大写.rar

    此函数首先使用空格作为分隔符分割字符串,然后对每个单词应用一个映射函数,该函数将提取单词的第一个字符并将其转换为大写,接着连接剩余的单词部分。最后,所有处理过的单词用空格重新连接起来,形成一个新的字符...

    php 将字符串按大写字母分隔成字符串数组

    在PHP编程中,有时我们需要对字符串进行特殊处理,例如按照特定规则分割字符串。在这个场景中,我们关注的是如何将一个包含大小写字母的字符串按大写字母分隔,将其转换成一个字符串数组。这个操作在处理类名、变量...

    JS/CSS实现字符串单词首字母大写功能

    另一种方法是先将字符串按空格或其他分隔符分割成数组,然后利用数组的`map`或`forEach`方法来逐个处理数组中的单词。 ```javascript String.prototype.firstUpperCase = function() { let arr = this.split(''); ...

    字符串操作封装函数

    4. **大小写转换**:`upper()`、`lower()`和`title()`函数可以将字符串转换为全大写、全小写和首字母大写的形式。 5. **去除空白字符**:`strip()`、`lstrip()`和`rstrip()`用于去除字符串首尾或两侧的空格或指定...

    精品课件 Python从入门到精通 第7章 字符串(共17页).ppt

    - **大小写转换**:`upper()`将字符串转为大写,`lower()`转为小写,`title()`每个单词首字母大写。 - **去除空格和特殊字符**: - `strip([chars])`:移除字符串两端的指定字符,默认移除空格、制表符、回车符和...

    常用字符串处理整理.rar

    3. 分割字符串:`String.Split()`函数可以将字符串按照指定分隔符切割成字符串数组。 4. 查找与替换:`String.IndexOf()`查找子字符串的位置,`String.Replace()`用于替换字符串中的特定字符或子字符串。 5. 去除...

    PHP常见字符串操作函数与用法总结

    ucfirst()函数作用是将字符串首字母转换为大写,而ucwords()函数则是将每个单词的首字母转换为大写。这些大小写转换函数在处理用户输入、数据库查询等场景中非常实用。 接下来是字符串的连接与分割。explode()函数...

    Go-xstrings一组实用的Go字符串函数集合。

    - `xstrings.SplitN` 和 `xstrings.SplitAfterN`:这两个函数允许用户按照指定分隔符分割字符串,并可以控制最多分割的片段数量,比标准库的`strings.Split`更灵活。 2. **字符串修剪与清洗** - `xstrings....

    JAVA中处理字符串的类

    4. 分割与连接:根据分隔符分割字符串,或将多个字符串连接成一个。 5. 首字母大写或全部转换为大写/小写。 6. 查找与替换:在字符串中查找子串并替换为其他子串。 7. 检验有效性:检查字符串是否符合特定格式,如...

    字符串转换的类,方便使用

    7. **字符串分割与合并**:允许开发者根据分隔符分割字符串,或将多个字符串合并成一个。 8. **空白处理**:提供去除字符串前后空格、修剪空白或替换空白的函数。 9. **字符串比较**:实现不区分大小写的字符串...

    Python字符串相关操作的整理

    `title()`函数可以将字符串中的每个单词首字母转换为大写,这对于格式化输出很有帮助。 **大小写转换**可以通过`lower()`和`upper()`方法实现,它们分别将字符串转换为全小写和全大写。 **内容对齐**是通过`ljust...

    第4章 字符串.pptx

    - **`split`** 方法:通过指定的分隔符将字符串分割成多个子串,并返回一个列表。 ```python s = "apple,banana,orange" print(s.split(",")) # 输出 ['apple', 'banana', 'orange'] ``` - **`capitalize`** ...

    字符串习题总结.rar

    5. **大小写转换**:字符串的大小写转换是常见的操作,包括转换为大写(如Python的`upper()`)、小写(如Python的`lower()`)以及首字母大写(如Python的`title()`)。 6. **字符串格式化**:在输出字符串时插入...

    Python_字符串处理.txt

    #### 十六、分割字符串 将字符串按照指定的分隔符进行分割。 - 示例:`sStr1 = 'ab,cde,fgh,ijk'; sStr2 = ','; sStr1 = sStr1[sStr1.find(sStr2) + 1:]` - 结果:`",cde,fgh,ijk"` - 或者使用`split()`方法: ...

    matlab基础编程:6 MATLAB深入学习字符串.zip

    9. **字符串操作**:`strtrim` 去除两侧空白,`strjust` 对齐字符串,`strsplit` 分割字符串并返回数组,`strjoin` 将数组元素连接成字符串。 10. **正则表达式**:MATLAB支持正则表达式操作,如 `regexp` 和 `...

    8 个很棒的 JavaScript 字符串操作技术.docx

    5. **使用多个分隔符分割字符串**: - 通过正则表达式和 `split()` 方法,可以方便地根据多个不同的分隔符拆分字符串。 ```javascript const str = "java,css;javascript"; const data = str.split(/[,;]/); // [...

    Python自学教程-05-字符串常用操作方法之查找.ev4.rar

    7. **大小写转换**:`upper()`将字符串转为大写,`lower()`转为小写,`title()`使每个单词的首字母大写。 8. **去除空白字符**:`strip()`用于去除字符串两端的空白,`lstrip()`仅去除左侧,`rstrip()`仅去除右侧。...

    字符串处理

    字符串有内置的`upper()`、`lower()`和`capitalize()`方法,分别用于将字符串转换为全大写、全小写和首字母大写。这些方法在处理用户输入或文本格式化时很有用。 六、字符串检查 编程中经常需要判断字符串是否满足...

    字符串处理函数(4KB)

    7. **大小写转换**:`UCase()`、`LCase()` 和 `Capitalize()` 用于将字符串转换为全大写、全小写或首字母大写。 8. **字符串比较**:`Compare()` 和 `Equals()` 用于比较两个字符串是否相等,考虑大小写或不考虑。 ...

    string-fn-字符串操作库

    3. **大小写转换**:`upperCase()`和`lowerCase()`方法提供了一种快速转换字符串大小写的方式,还有可能包含`capitalize()`方法用于首字母大写,以及`titleCase()`用于每个单词首字母大写。 4. **字符串分割与合并*...

Global site tag (gtag.js) - Google Analytics