00:00
大家好,我是海波老师,我们继续来讲Java中的字符串,之前介绍了一下字符串的构建,以及字符串和字符啊字节之间的关系,接下来咱们就主要演示一下字符串的基本操作,那么这里的操作呀,我们主要演示符串的拼接啊,比较啊,截段啊,替换,转换,查找等等啊,那么这里我们首先我们来拷贝一个新的代码,我们写上一个下划线一。啊,点击OK啊,把下面的这些东西呢,我们全都给它去掉,我们接下来要讲的呢,就是字乌串的一个我们的操作了,首先我们说过了,咱们第一个要给大家讲的就是我们的拼接,那所谓的拼接就非常简单啊,就是把多个字符串连在一起的意思,就是将多个字符串连接在一起,那么首先啊,我先写上一个我们的什么呢?我们的S,它等于我们的A,我想在它的后面连接一个字符串的话,其实我很简单,只要用一个加号就行了,我们写上一个B的话,那么就等同于将两个字符串连接在一起,需要注意一下,我们这里的连接呢,它会产生一个新的字符串,我们就叫AB,也就意味着我们后面的字符串会拼接到我前一个字符串的后面,这个需要大家稍微的注意一下,还有一个呢,就是我A加B呢,会产生一个新的字符串,我们叫AB,但是你要记住它跟我这么写没有任何的区别,就是我直接写成AB,两个效果上是完全相同的,哎,咱们怎么来证明一下呢,咱们来。
01:24
上咱们这边打印一下,咱们叫S点哈希code,然后再来一个我们叫一点哈希code,大家还记得吗?我们之前讲过我们的哈希code呀,可以简单的理解为是对象的内存地址,那么我们现在呢,一个是S,一个是S1,我们现在运行一下。运行以后大家会发现两个都是3105吧,说明我们当前的这两个字符串对象是完全相同的,所以啊,他们是一个对象,同学们能不能明白你虽然说写了个加号,但是两个合在一块跟这个本质上其实是完全一样的啊,除了刚才这个地方以外,还有一个需要注意的地方,就是这里的加号呢,是Java虚拟机为了方便字符串的拼接而提供了一个特殊运算符号,它和数值运算符当中的加号呢,其实是容易混淆的,大家看一下,我这里准备一个代码S2,它等于ABC加一加二。
02:18
哎,老师呀,你不说了吗?我们的加号是用来拼接字符串的,怎么还可以跟我们的数字做拼接呢?这里就给大家解释一下,如果我们的Java虚拟机它碰见了一个加号的话,它前面如果是字符串的话,它会自动的把加号的第二个值把它转成字符串,那么所以就意味着我们现在ABC后面加的其实不是数字一,是谁呢?是我们的字物串一。那么它们就会产生一个新的字符串,叫什么呢?叫ABC1 ABC1它们就变成了这么一个字符串,而这个字符串呢,它在加号的前面,那么这就需要后面这个也变成字符串,所以呢,它就变成了一和二,就是这样的,所以说你现在打印我们的S2,我们的S2现在我们运行一下,运行以后大家看结果,你会发现我们当前就是ABC12,没有任何的问题。
03:09
好,这是我们的一种情况,咱们再来我们的S3。你现在呢,把我们的一我放在我们的这边,把这个去掉,去掉以后同学们这里需要注意了,我们这地方是一加上ABC,诶老师你刚才不说了吗?我们的这个加号的前面如果是字符串的话,它会把后面变成字符串,那我现在前面是个数字的话,它会怎么办呢?其实啊是一样的,就是只要我们这个加号的两边任意一个是字符串的话,我们的数据都会变成字符串,只不过呢,我们这里呢,是把这个一所对应的字符串放在了ABC的前面,而把这个二呢,放在了我们字符串的后面,所以它的打印结果呢,应该是1ABC,二应该是这个样子,所以我们打印一下我们的S3,我们运行一下。运行以后看结果你会发现1ABC2没有任何的问题,好,我们继续我们再来,然后呢,我再来一个,我把这个二呢也挪前面去好,然后呢,把这个去掉,去掉以后,诶老师这不就简单了吗?你的结果不就应该是12ABC了,对不对,哎,所以咱们来打印一下,咱们就S4。
04:14
运行以后大家看一下我们运行,运行之后看结果,你会发现结果并不是我们所谓的12ABC,而是3ABC哟,这是为什么呀?同学们再给大家解释一下,这是因为我刚才讲过了,我我们加号的两边任意一个是字符串的话,那么所有的数据都当成字符串,但是你的加号它有一个先后顺序啊,我们多个加号它会从左到右依次计算,也就意味着你的第一个加号它会先计算,但他们的两个值并不是字符串啊,所以他们就要做我们的数字运算,一加二不就等于三吗?三再加上ABC,那你想想吧,有一个是字符串,那个三就会变成字符串,所以这个时候呢,就变成了3ABC,能不能明白同学们就是这样的一种感觉啊,也就意味着我们的这个加号其实容易混淆,而且造成歧义的。
05:04
哎,老师,那有没有别的办法来拼接字符串呢?其实也是有的,除了加号以外,字符串还提供了一个方法,这个方法呢,我们叫做我们的S一点,有个叫contact,哎,这个方法,这个方法呢,它可以拼接我们的字符串,我写上一个咱们叫做ABC,然后呢,我们去打印一下,打印以后大家看一下,我们叫AB,再拼接一个ABC,我点击运行,运行之后大家看结果,你会发现我们这里没有任何的问题,后面加了一个ABC,所以啊,这个方法也是一种拼串的感觉,它会将我们新的字符串拼接到字符串的后面,对吧?而我前面这种加号呢,你看你怎么写了啊,怎么写的话,只要你能明白,我觉得也挺方便的啊,所以呢,我们其实在开发当中啊,虽然说这种方式会造成歧义,但是我们一般呢也会这么写,只不过呢,最好的方式呢,是把我们优先计算的呢,给它加上我们的这种方式,这种方式的话就没有问题了,懂我的意思吗?同学们,就是我们用括号把我们的。
06:04
优先级顺序给它稍微的改善一下就可以了。
我来说两句