计算字符串字符数的函数和字符串长度的函数
====================
CHAR_ LENGTH(str)返回值为字符串str 所包含的字符个数。一个多字节字符算作-一个单字符。
使用CHAR_ LENGTH函数计算字符串字符个数,输入语句如下:
LENGTH(str)返回值为字符串的字节长度,使用utf8 (UNICODE的一种变 长字符编码,又称万国码)编码字符集时,一个汉字是3个字节,一个数字或字母算一个字节。
使用LENGTH函数计算字符串长度,输入语句如下:
可以看到,计算的结果与CHAR_ LENGTH相同,因为英文字符的个数和所占的字节相同,一个字符占一个字节。
合并字符串函数CONCAT(s1 ,2…… CONCAT_ WS(x,1,2……)
==========================================
CONCAT(1,2,*.)返回结果为连接参数产生的字符串,或许有一个或多个参数。如有任何一个参数为NULL,则返回值为NULL。如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任- -二进制字符串,则结果为一个二进制字符串。
使用CONCAT函数连接字符串,输入语句如下:
CONCAT(My SQL, ‘5.7)返回两个字符串连接后的字符串; CONCAT(My’,NULL, 'SQL)中有一个参数为NULL,因此返回结果为NULL。
CONCAT _WS(x,1,2,*.),CONCAT_ WS代表CONCAT With Separator, 是CONCATO的特殊形式。第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则结果为NULL。函数会忽略任何分隔符参数后的NULL值。
使用CONCAT _WS函数连接带分隔符的字符串,输入语句如下:
CONCAT_ WS(-', 'Ist,‘2nd’, ‘3rd")使用分隔符‘-’ 将3个字符串连接成-一个字符串,结果为“1st-2nd-3rd” ; CONCAT_ WS(*’, ‘Ist’, NULL, '3rd")使用分隔符‘*’将两个字符串连接成一个字符串,同时忽略NULL值。
替换字符 串的函数INSERT(s1,x,len,s2)
============================
INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符。如果x超过字符串长度,则返回值为原始字符串。假如len的长度大于其他字符串的长度,则从位置x开始替换。若任何一个参数为NULL,则返回值为NULL。
使用INSERT函数进行字符串替代操作,输入语句如下:
第一个函数INSERT(Quest’, 2, 4, 'What)将“Quest”第2个字符开始长度为4的字符串替换为What,结果为“QWhat" ;第二个函数INSERT(Quest, -1, 4, 'What)中起始位置-1超出了字符串长度,直接返回原字符;第三个函数INSERT(Quest, 3, 100, 'What)替换长度超出了原字符串长度,则从第3个字符开始,截取后面所有的字符,并替换为指定字符What,结果为“QuWhat”。
字母大小写转换函数
=========
LOWER (str)或者LCASE (str)可以将字符串str 中的字母字符全部转换成小写字母。
使用LOWER函数或者LCASE函数将字符串中所有字母字符转换为小写,输入语句如下:
由结果可以看到,原来所有字母为大写的,全部转换为小写,如“BEAUTIFUL",转换之后为“beautiful”;大小写字母混合的字符串,小写不变,大写字母转换为小写字母,如“WelL”,转换之后为“well”
UPPER(str)或者UCASE(str)可以将字符串str中的字母字符全部转换成大写字母。
使用UPPER函数或者UCASE函数将字符串中所有字母字符转换为大写,输入语句如下:
由结果可以看到,原来所有字母字符为小写的,全部转换为大写,如“balck”,转换之后为“BLACK”;大小写字母混合的字符串,大写不变,小写字母转换为大写字母,如“BLacK”,转换之后为“BLACK”。
获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)
=================================
LEFT(s,n)返回字符串s开始的最左边n个字符。
使用LEFT函数返回字符串中左边的字符,输入语句如下:
函数返回字符串“football”左边开始的长度为5的子字符串,结果为“footb”
RIGHT(s,n)返回字符串中最右边n个字符。
使用RIGHT函数返回字符串中右边的字符,输入语句如下:
函数返回字符串“football” 右边开始的长度为4的子字符串,结果为“ball" 。
填充字符串的函数LPAD(s1 ,len,s2)和RPAD(s1,len,s2)
========================================
LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。假如s1的长度大于len,则返回值被缩短至len字符。
使用LPAD函数对字符串进行填充操作,输入语句如下:
字符串“hello” 长度大于4,不需要填充,因此LPAD(hello’ ,??)只返回被缩短的长度为4的子串“hell”;字符串“hello” 长度小于10, LPAD(‘heell’,10,??)返回结果为“???hello”,左侧填充‘? ’,长度为10。
RPAD(s1,len,s2)返回字符串sl,其右边被字符串s2填补至len字符长度。假如字符串s1的长度大于len,则返回值被缩短到len字符长度。
使用RPAD函数对字符串进行填充操作,输入语句如下:
字符串“hello” 长度大于4,不需要填充,因此RPAD('ello’4,?)只返回被缩短的长度为4的子串“hell”;字符串“hello”长度小于10, RPAD(‘hello’,10,"?)返回结果为"hell???”,右侧填充‘?’,长度为10。
删除空格的函数 LTRIM(s)、RTRIM(s)和 TRIM(s)
==================================
LTRIM(s)返回字符串s,字符串左侧空格字符被删除。
使用LTRIM函数删除字符串左边的空格,输入语句如下:
LTRIM只删除字符串左边的空格,而右边的空格不会被删除,“book ”删除左边空格之后的结果为“book”。
RTRIM(s)返回字符串s,字符串右侧空格字符被删除。
使用RTRIM函数删除字符串右边的空格,输入语句如下:
RTRIM只删除字符串右边的空格,左边的空格不会被删除,“book ”删除右边空格之后的结果为“book”
TRIM(s)删除字符串s两侧的空格。
使用TRIM函数删除字符串两侧的空格,使用语句如下:
可以看到,函数执行之后字符串“book”两边的空格都被删除,结果为“book”。
删除指定字 符串的函数TRIM(s1 FROM s)
==========================
TRIM(s1 FROM s)删除字符串s中两端所有的子字符串s1os1为可选项,在未指定情况下,删除空格。
使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,输入语句如下:
删除字符串“xyxboxyokxxyxy"两端的重复字符串“xy”,而中间的“xy”并不删除,结果为“xboxyokx",
重复生成字符串的函数REPEAT(s,n)
=====================
REPEAT(s,n)返回一个由重复的字符串s组成的字符串,字符串s的数目等于n。若n<=0,则返回一个空字符串。若s或n为NULL,则返回NULL。
使用REPEAT函数重复生成相同的字符串,输入语句如下:
REPEAT(MySQL’, 3)函数返回的字符串由3个重复的“MySQL"字符串组成。
空格函数SPACE(n)和替换函数REPL ACE(s,s1,s2)
==================================
SPACE(n)返回一个由n个空格组成的字符串。
使用SPACE函数生成由空格组成的字符串,输入语句如下:
SPACE(6)返回的字符串由6个空格组成。
REPLACE(s,s1,s2)使用字符串s2替代字符串s中所有的字符串sl。
使用REPLACE函数进行字符串替代操作,输入语句如下:
REPLACE(xx.MySQL.com’, 'x, ‘w’)将“xx.mysql.com"字符串中的‘x’ 字符替换为‘w’字符,结果为mysql.com
比较字符串大小的函数STRCMP(s1,s2)
=======================
STRCMP(1,2)若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1。
使用STRCMP函数比较字符串大小,输入语句如下:
“txt”小于“txt2” ,因此STRCMP(‘txt’, 'txt2)返回结果为-1,STRCMP(‘txt2’, 'txt)返回结果为1;“txt” 与“txt”相等,因此STRCMP(‘txt’, 'txt)返回结果为0。
获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
======================================
SUBSTRING(,n,len)带有len参数的格式,从字符串s返回一个长度同len字符相同的子字符串,起始于位置n。也可能对n使用-一个负值。假若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置。
使用SUBSTRING函数获取指定位置处的子字符串,输入语句如下:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/95fe424e2f6e0948922fa45a19a5db0c.jpeg)
最后
为什么我不完全主张自学?
①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
[外链图片转存中…(img-0ICDpA5D-1713505521048)]
[外链图片转存中…(img-ks0hM0b3-1713505521050)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!