00:00
好,那上午的话呢,我们是演示了一下关于string里边这个第一波这个方法,就是我列举出来这个方法呢,相对来讲都是比较这个高频的啊,实际上呢,这个string的方法呢,很多,你看光构造器的话呢,就这么多,往下看的话呢,这个你往下拽。是吧,哎,感觉这个很多啊,就这些方法里边,当然有很多是这个重载的啊,这个重载里边呢,其实你要知道一个是什么意思呢,剩下的其实一系列的就都清楚了啊,但是呢,还是会有很多的方法,所以这里边的话呢,我们就把这些常用的这些呢得挑出来,它的意义是什么呢?所大家平时写代码的时候呢,你要想到去用这些方法,需要呢去比较两个字符串是不是相等了,直接呢调ES比较大小了,调这个compare two啊,需要呢把它转换成大写,判断是不是为空想取指定位置的一个字符啊数字符串的长度是多少,这个呢,拿出来拿起来就能写得能够达到这样的一个程度啊,那还有一些呢,呃,是我们后边这些大家呢,也稍微关注一下,我们把这块呢,这块的一个方法呢,也测试一下哈。
01:02
这里边呢,提到了叫ends with和starts with说是不是呢,以指定的这个字符串结束啊,以指定字符串呢开始,诶把这个呢,我们CTRLC啊接着粘出来演示一下,这是咱们这一波方法,嗯,这个我就TEST2这个test一起下边了啊,这个我是从下往上写的啊,大家稍微注意一下,嗯,这个呢,粘出来放在这儿,Ctrl shift f一下。啊,这个把这个对齐吧。那TEST3啊,这是二,这是三,好这个呢叫ends with,说这个字符串呢,是不是以指定的这个字符串呢结束的,哎,我们这呢写一个啊string it r1,哎这呢我们写一个,比如叫hello word啊写个它,然后呢,我们这个it r一点叫ends with,这呢写一个字符串,比如说呢,是不是以指定字符串LD结尾的,这个我就这样来写,返回到呢,是一个波尔类型al enter,那这个呢,我们去写一个be吧。
02:05
哎,这呢,我们去b1.sout一下,哎,这呢,显然就是个处了。哎,没有问题,就是此时的话呢,我们这个位置呢,没有要求说你写几个字符啊,几个字符构成的这个串,没有要求这个根据需要,嗯,这是两个呀,一个呀,这这都可以啊,关键呢,就是你看这个是不是确实以这几个结尾的,这我前面写了三个啊,只要是这三个结尾的也是对的,只要你写一个这个不对的啊,比如这写了个一是吧,哎,这呢就是一个false了。哎,就这样个情况啊,成这呢是咱们说的这个,哎,Ends with比较简单,下边呢叫starts with啊跟它正好对应,是不是以指定的字符串开始的啊,这呢我们str一点啊叫starts with,这里边这里边呢,你看我要写上一个大写的he,这样呢是除2FALSE,对false就是咱们这呢,这不是区分哪写的B2.s。
03:11
行,这个呢就是false了,嗯,然后呢,下边有一个叫呃,Start with,呃叫int,一个叫two ofet,说测试呢,字符串从指定的索引开始的子串是否已指定的你这个呃前缀开始啊,这个也比较好理解,比如说我们把这个呢,我再重新的再造一个啊,CTRLC。这个叫BE3。啊B3这个呢,我写成H,写成这个这个吧,比如我写成这个叫LLL2是不是以L开头,这肯定是false了。但是呢,我后边呢,指定一个开始的位置,比如说零一是不是二啊,哎,从这个二开始,哎是不是以LL开头的。
04:00
出啊比较好理解,行这呢就是我们说的这个叫star with n with,就是我测试完以后呢,大家呢,那你有个印象啊,回头呢,咱们涉及到关于string的操作的时候呢,你要想到这些方法。包括咱们这个课后呢,我也放了几道关于string的一些小的算法题,小的算法题,那这些算法题当中呢,你就可以考虑使用刚才咱们讲的这些方法呢,诶,你去完成这个算法的要求啊,好了,这是这三个方法,这呢还有一波CTRLC,其实这呢没有什么技术含量了啊,就是咱们这个拿着这个方法呢测试一下,这里边呢,第一个叫contains,这个方法呢,其实很多时候我们也会用判断一下呢,调这个方法的字符串当中是不是有这样的一个啊叫叉sequence,这其实是个接口了,而我们这个string呢,又实现了一个接口叫字符序列嘛。词锥呢,属于这种不可变的字符序列了啊,所以呢,实现了这个接口,那这个呢,你可以就完全再放一个字符串就行,判断一下我们当前字符串当中是不是包含这个字符串。
05:09
哎,你像这些方法的话,让我们自己去写,那其实还挺费劲的,说你判断一个字符串当中是不是包含这个串还挺费劲的,这个时候呢,你就可以直接调他这个方法来做了,我这呢新定义一个叫str,二这呢我来一个wo吧。这么着,那此时呢,我们进行判断,我直接呢就输出了说str1.contains,那STR2是不是包含我们这个I tr啊这个wo显然呢是包含的。哎,这张就是个处。啊,这就是个处啊,嗯,这个比较好理解啊,你改成个大写的,这个大小写呢,也是严格要求的啊,写一个比如二啊,这显然就是不包含了。哎,就不包含了啊。好,这个大家呢,能想象到这个方法他怎么去写的吗?
06:05
它是不是就得匹配一下是吧,就你像那个W开头,他从这边得找一下,是不是先能找到有一个W开头的,找到这以后的话呢,你再看那个后边的O匹不匹配O如果匹配了在后边呢,你这个R一看不匹配了,不匹配呢,这个时候呢,你不能马上就返回false了,你说还得继续往后补啊,哎判断对吧?哎,尤其呢,你像我这里边比有两个W的,第一个呢,W你看哎匹配第二个呢,这是个O啊,这是个W不匹配了,不匹配以后呢,你不能再接着判断的时候从后边来啊,你是不是得从这个W来了,哎,对的啊,所以这里边呢,还是涉及到一些这个计算量的,只不过呢,用不着咱们自己去写了,直接呢,你调这个现成的,知道这个方法就可以了,回头需要用呢,你就直接来调啊,点一下这个cons,这不这里有这个判断的标准,它调了另外一个inces of啊,那下边呢,指南也会涉及到这个叫instance of。
07:00
哎,Instance of说呢,这个调这个方法的字符串当中,这个字符串呢,是不是存在,如果要是存在的话呢,你告诉我它从哪个索引位置开始的。嗯,Index就是索引,就是它这个字符串的的索引啊是多少,来还是来举例子,嗯,比如说呢,我这直接还是去输出了it tr一点叫index o这呢,我写上一个叫wo吧。呃,短一点吧,W太靠后了,Lo吧,Lo显然呢,我们能找到lo,哎,能找到的话呢,我们找到它的这个索引,好数一下啊零一。234是我们的lo,那这里边儿到底出来三还是四呢?就说还有说三四的呀,这是个int啊,可不是int型数组啊,那这呢就出来的是三。
08:01
嗯,就是你首次出现的这个位置。哎,这就是三啊好这个呢比较好理解,那如果说我们这个找这个字符串的时候呢,没找到,比如说LOL。撸啊撸是吧,嗯,这里边儿呢,没有LOL,那没有的话呢,这时候返回什么呢?对,这时候呢,首先呢,你得有返回,因为人家有返回值类型,那返回什么呢?返回负一。哎,返回负一了,这个呢,其实嗯,也可以看成是个规定了啊,其实也确实是个规定啊,就是正常来讲呢,我们返回它的索引,那最最如果存在的话啊,最小这个索引是不是可能返回零啊,就开头就是。啊,那零那有可能是后边的啊一啊二啊三啊,当然因为你也不知道人家字符串多长,所以说呢,它有可能是这个后边的任何一个可能的值啊,这是往后了,那现在呢,你要是没有,你要没有的话呢,你不能让他啊没有那就返回十。
09:04
那万一人家要是有恰好就是十这个索引的是吧,所以你不能从后边去找一个值了。那又因为你最小呢是零,那不妨呢,你要是没找到,咱们就是不是就返回零,前面这个,哎,就这么着啊,所以呢,它就返回负一了,可以看成是个规定啊,另外一个层面就是非常合理的一个规定。啊,比如说呢,咱们后边还会讲数据库,讲数据库的时候呢,咱们知道数据库中呢,都是这个表。这个我随便打开一个,这是数据库中的一个表,这个表的话呢,这就相当于第一列,第二列,第三列,第四列,这个第一列的话呢,它的索引在数据库当中就是一。咱们Java当中这个索引是从零开始的,典型的数组字符串都是,那么在这个数数据库当中是从一开始,那数据库里边说呢,我们也会啊,说我找一下这个存不存在,是第几个位置,哎,它呢就是如果你要是存在的话呢,一开头就是它返回的是一。
10:03
那同样的问题,我们数据库当中也会有这个字符串这个结构了啊,我们也判断一下某个字符串这个它的index,类似这样的操作的话呢,如果一开头就是反馈的是一,那如果要是没找到呢。没找到,你觉得它怎么设置啊,诶,它就返回零了,哎,因为它从一开始的往后顺,然后没找到它就取一前面的,它就取零了啊,也是非诚理的一个规定啊,也就是说大家呢,如果以后啊,这个有本事啊,自己想开发一门语言是吧。啊,类似的,你要想出现一个字符串有这样的功能,那你是不是也大概得这样去规定了啊,这是非常合理的一个规定了啊,所以这块提到了啊,哎,叫返回负一,没找到的时候再接着呢说叫index of,从指定的这个索引开始。啊,这是另外的一个重载的方法,嗯,也很好理解。
11:05
S tre先s out。HR一点叫index of,咱们调的呢,是这个方法了,我想找一下谁呢。嗯,比如呢,还是这个lo啊,还是lo lo,但是呢,我这块写的呢,是从五开始去找。哎,01234,我从W这块开始去找,往后找找这个lo显然是不是没有啊对,那这就找不到了,F负一,那这就这个意思啊,那就是默认的时候呢,我们可以从头开始找,然后呢,这个找到了,哎,那就是返回这个啊,你要是从这个位置开始找的话呢,就往后看。有可能就找不到了,就这个呢,比如说我们可以做什么事呢,我们想看一下,举个例子,比如说在咱们这个题目当中,我想找咱们这还没有特别重复多的的这个逻辑哈。
12:11
比如我想找某一个,比如像O2吧,出现了几次。我想找它出现了几次,那大家呢,可能会想,那我就调index of,如果这个返回值不是负一,现在是不是找到一个啊,那你找到一个以后呢,有可能人家还有,哎,那就相当于比如说你找到了,那返回的就是你这个找到第一次的这个索引了,找到它以后呢,你接着呢,再加上你这个要找的这个租叉的长度是二,相当于再接着让他是不是从L开始,接着往后找,看看还有没有,哎,到那个时候呢,你是不是就可以指定用这个方法了。哎,我找到一个你返回的一个索引,比如说是七,然后呢,我就接着呢,再去找这个O2,哎我让这呢就是七,再加上我这O2的长度是二,从这个九的位置呢,再往后去找啊看看还有没有,还有的话呢,呃,返回一个,你这就变成有俩了,呃返回来你看这个索引位置在哪,再找O2在哪,那个索引位置再加上二,再往后去找。
13:08
诶找他一共出现过几次,可以这样很多呢,咱们这个搜索不都是,诶我搜一下这个里边有多少个这个,比如说有一段文本,这个文本呢,咱们CTRLF一下,哎,说我想搜一下谁,哎他这块能呈现出来,说找到多少多少处。是吧,哎,就就类似这样的这个操作啊,那再接着呢,看这个叫last index of last,就最后的这呢是从前往后去找,这呢就是从后往前去找。啊,也很好理解,那举例子举例子,直接out it一点,我们叫last inex of,从后往前找,我们找,比如这个这咱们得多来几个我这啊,或者咱们就不改这了啊,我在这重新来造一个吧。String ir2ir3有个二了。
14:04
嗯,Hello word这个前面呢,我在这来一个啊or,这有两个or了。S723O2这个呢叫last inex,我从后往前找,就是从这块往前找,看看这个O2这个出现在哪个位置。哎,这块呢,出来了叫七,这个七呢,还是得你从前往后数的啊,123456,哎,错了,零是吧,0123456啊,这不是O叫齐了,虽然是从后往前找的,但是你可别从这哈,说这个D呢,这叫零啊,0123不能这样啊,从后往前找返回的这个索引呢,还是从前往后的那个索引啊,这是找的是这个O2,这就相当于是找到了,然后再来一个,它呢有一个重载的方法,有一个in from index啊这个你要小心一点,它说呢是返回指定的子字符串,在此字符串中最后一次出现的索引,从指定的索引开始反向搜索。
15:12
什么叫反应速度啊,还对从右往左是吧,比如呢,咱们刚才这块找的这不就是七吗?刚才是七七的话呢,那我这嗯我写一个嗯,诶看这就行啊,那这块是七,那我这我写一个写个六吧。哎,就是这块呢,它的索引是七了,我写六,那就言外之意,就从他这开始找,从这开始找,往往往左还是往右啊往左哎往左,那这这边就找到这个了,找到这个O了啊。你看这不就成了四了吗?哎,四的话呢,这就是0123S4就是这一段方法跟这一段方法正好是对应的啊,一个从前往后,一个从后往前啊就这个意思成这呢,就涉及到我们去找这个字符串的这个情况了,那问大家一个小的问题啊,说什么时候这一个小题目啊,什么情况下。
16:15
什么情况下怎么着呢,我们调这个index of一个参数的啊,它呢和我们叫last index of,它的返回值相同。什么时候啊,我从前往后找返回的索引,跟从后往前找返回的索引一样。对哎,应该说呢,要么呢只有一个,对你只有一个的话呢,从前往后找找到它,从后往前不是还是它吗?啊要么呢,要么就没有,哎,因为负一呢还算了是吧,哎这呢就是两种情况啊,情况一,相当于呢,就是诶存在这个唯一的啊一个ST2,情况二。
17:13
哎,这呢,就是不存在啊S。成这呢是我们说的这一波方法,刚才呢就测试完了,其实这个方法呢,本身大家一看这个名字,其实呢就大概猜了个八九不离十了,主要呢还是呢,你得有意识哈,尽可能的能把这些方法呢熟悉一下,呃,这个熟悉的话呢,那就是通过一些题目去熟悉了啊哎,这我们还接着再看一下后边这个方法啊。
我来说两句