00:00
嗯,那除了我们能够获取int型的值之外呢,那就想那我能不能获取一个double啊,获取一个float呀,是吧,布尔型啊,或者说字符串啊,诶对,其实呢,都可以。那咱们就全依赖于就是你这个scanner,到底它都给我们提供什么功能了呗。哎,所以有的时候我们经常说说这个结构很强大啊,说Java比如说类库很强大,其实就是说白了就是它里边给你提供这个类呢,提供的功能很丰富,哎,任何场景你都能用,这就是所谓的强大的是吧?哎,你看这个scanner里边,比如说咱们想获一个BAT,想获取一个布尔,获取一个double float int along,你看是不是这个功能都有啊对,那我我想获取一个字符串呢,哎,字符串呢,你像这有一个next,哎,这还有一个叫next line,这两个都是字符串都可以。
01:00
来,那这块既然都有,咱们呢,不妨说到这个词善呢,就把它,哎都这个这个说透一点,咱们呢,举一个实际的情境啊,嗯,比如说呢,比如说现在是征婚了是吧,征婚的时候呢,人家让你说输入你的个人信息,这个人信息里边不就涉及到不同的类型了吗?哎,咱们举个例子啊,比如说啊,首先啊,你像这块这还有一个小情况,就是你看我这时候一上来刚才这个光标在这闪,这个其实对于用户来讲交互不太好啊。没有给我提示说你到底要干什么,咱们呢也加个提示,就是前面呢,在这个位置,咱们来一个输出语句,哎这呢,我们比如说写上啊,说请输入你的先来个姓名吧。哎,请输入你的姓名啊,那这块呢,咱们就你先出来这个,然后下边哦,他就知道写的是一个字符串了啊,那我把这个呢,就先这个这个直接就直接就换掉了啊,现在呢,你想输入的是一个字符串,那我就咱们这个SC啊这个声明好的,这个变量其实是个对象了啊哎,咱们刚才看了这个API了,我用next的方法去接收,呃,接收呢就来接收啊,为一个死锥形的,比如叫name了。
02:19
嗯,然后下边呢,嗯,这个就是它的内幕,我们简单的做一个输出吧,比如说啊行,这是它的一个string形的获取,然后呢,我来获取一下这个整形的。请输入你的,比如说芳龄,你看这就是个女孩了,就啊输入芳龄,这就是一个年龄,是一个整形,整形呢,咱们刚才看到其实有好几个啊,是next be short,还有long啊,Int都有啊,这块咱们说整形用int用的多,所以我这呢就拿它来举例子了啊哎,我们接收为它的一个A。
03:04
行,嗯,下面呢,我们也只是对它进行一个输出先啊。行,这呢是我们说的这个年龄啊,然后呢,对于一个波尔型,请输出你的这个体重吧,一般女生的体重都比都属于隐私,都属于是吧,嗯。而且女生呢,一般都天天说我要减肥,这其实主要就是一个口号是吧,不管你是胖的也好,瘦的也好,这个一定要把这个口号要喊得要响亮一点是吧,反正要减肥,至于说真减假减,要不要减再说是吧,嗯,这个嗯体重体重的话呢,是一个double型的,呃,是一个浮点型的,浮点型的我们这有一个next double float。哎,都可以啊,哎这呢,比如我们通常的浮点型用double了,咱就也写成double啊,然后切收尾一个double,那你看我这时候给这个变量名命名的时候,我就注意这个剑名之意了,咱们有具体的情境了啊,就别A1D1了,那这第一也太抽象了啊,对wait体重啊,那体重呢,这块我们也也不做别的判断了啊,只是做一个简单的输出先好是这个,呃,还有什么类型没涉及到呢?倍型没有是吧?行,然后system.out布尔型没到那这块写一个。
04:44
嗯,写个什么呀,嗯,你是单身,这肯定得单身,不单身就没法相亲了是吧?嗯,你是否相中我了呢?这个的这这样是吧,诶你只能选出跟false啊行,那这呢,我们这个SC点啊,然后next的一个,诶是不是猜都能猜出来了,你想获取什么类型,是不是用next谁啊对啊,所以这块我们获取这个变量相关方法呢,你会发现,诶这个当然比较特别的呢,是这个string哈,String呢不是next string就是next,除了它之外呢,都是next叉叉叉了。
05:31
对,就这样的啊,行,Next bully,我们接收为一个布尔型啊,来一个什么呀。嗯,这这这个这个叫什么呀,是否相中了我叫伊老虎吧,这样啊,是不是你的这个这个相中了这个人啊,好,然后输出。来子拉啊,还差一个什么类型,基本属于类型,还差谁,是不是还差一个叉啊,哎,对啊,还差个叉,来找找那X的叉。
06:19
诶next叉,那就按说该next ch chl啊这个完了以后,Next这这B这D好像中间没有next c头的是不是就没有啊对没有啊,然后呢,你看这个左边是其实就是你调这个结构返回的这个类型了,你这块大概走一遍发现呢,确实也没有一个差,诶这为什么这个干给我们声明的时候,他不给我整一个很差的呀。为啥不给啊?哎,对,有同学提到了,你写字符号不就完了吗?比如我想获取一个说你的性别,性别男女,哎,这咱们都是用一个叉表示就行,但其实你不用叉,我用个字符串是不是也可以啊,哎,其实也确实是这个原因啊,就是我们获取的话呢,如果是一个字符的,其实就用一个字符串啊去接受就可以了啊,如果你要说非得就是这个得就得我就得拿一个差型的一个变量,那怎么办这样来处理啊,这个我们在这先明确写一下,说呢对于这个char型,但这个获取咱们说呢,这个scanner还没有提供这个相关的这个方法,很遗憾啊,说呢,我们只能够啊这个获取一个字符串啊,那就这样来做了,比如说请输入你的性别。
07:51
哎,性别啊,性别呢,这个咱们假设啊,就就就只有两种啊,对这个万一还有别的呢是吧?行诶在这里边呢,我们只能是拿着这个S sc.next的方法,哎,咱们获取成一个字符串啊S,哎这个这个string啊,这个我们叫做gender法,就是性别的意思啊,那这时候得到是个string,其实呢,也不影响你去用哈,下边呢,你用你就知道这是一个string表示的男或者女,就是相当于是用的是这种双引号是吧?哎,这个男或者是女就完了啊,那如果有同学就说我现在我就非得是得到是一个差型的。
08:38
我非得得拿一个叉型去接受,那怎么办?啊,这个我就得拿一个这个差型的一个我就这样写吧,啊一个真的是吧,咋整哎,这时候呢,那我就得想办法了啊,这个办法呢,就是它这个大家没见过啊,现在我们就多说一个功能,就是这个字符串,字符串字符串就像我们说这个哈一样啊,这是一个字符串了,那就是有多个字符构成的一个串呗,它的每个位置其实都是一个字符。
09:11
对,那你这个字符串呢,你看你想要哪个位置上的字符,我就可以获取,比如说我想要H,哎,我就可以把这个字符串里边这个H呢给它取出来,怎么取呢?我就取它的这个第一个位置是吧?哎,不就是H吗?你要有我要第二个位置的叉啊,那就是一等等等等等,哎在这个string当中给我们提供了一个方法叫做at。对啊,这个小符号在这里边呢,你填入你想要哪个位置上的字符就可以了啊,你看我们这个string啊,哎,坠往下走。哎,这面这个方法里边,那第一个就是。诶,查找到指定索引位置上的一个字符,点开关于这个方法的一个介绍,然后下边呢,这个参数这块啊,说这个就是你要的这个叉的这个索引,呃,索引这块呢,说the first叉VALUE6你的第一个差这个值的话呢,它是在索引诶零的位置。
10:17
这是我们首次接触到这个,所以呢,这个开头的啊,在咱们Java当中呢,这个所以呢,后边我们讲数度也会发现都是从零开始的。所以这个位置我们想要第一个字符,注意不是一哈,对是零行,你要是非要说我想把这个string,把这个难的以一个差评去接收,那你就这样调一下这个string的这个方法啊,这个方法的作用呢,叫获取这个所啊引为零位置上的这个字符啊,OK,那得到以后呢,这块输出一下,哎,这时候就是你你你要的这个叉型啊,诶CTRL一下。
11:00
行,那至此的话呢,咱们其实相当于是都有办法啊,获取我们常用的这些类型了,哎,主体上来讲都是用到scanner中的这个相关的这个方法好CTRLS保存完以后咱们做测试。啊,因为我们啊,这个先把这个我们输这边输一个先结束了它啊然后呢,我们这块呢,得先编译了,因为改过代码啊,编译完以后再运行看这块啊就按照这个来的说,请输入你的姓名啊,这个姓名啊如如花如花芳龄啊芳龄啊22岁啊18也行是吧,嗯,说这个男人一般都比较专一是吧,不管这个20岁30岁40岁还是老了,都喜欢18岁的女生,这个体重如花的体重100这个这公公斤是吧,这个单位我这没没没写着啊一或者一百点一百点二吧,咱这是个大度型的啊诶问是不是相中我了,烟兰口唾沫说说false是吧,诶诶这人我们把它输出了,哎最后呢,这是我们补充了一个说性别啊,输入你的。
12:14
面女呗,哎,对不对,掉出女是吧。诶快车可出来了,行,哎通过刚才这样一个演示呢,我们哎就能把咱们平时常用的一些类型呢,都可以获取到啊,这就可以了啊呃,大家呢,需要强调的就是呃,就要需要强化,就是我们这三步啊这呢我把它再粘一下啊这呢是我们这个第一步。哎,这是第一步啊,然后第二步呢,就是我们这个具体的实例化,在这写的第二步,然后下边呢,就是你调用这个相关的方法啊,去获取这个类型啊,指定的类型,呃,下边呢都算,然后为了呢,获取的时候呢,让用户有一个比较好的体验,就是你最好呢,在上面先加入一个提示,说你到底想让他干什么,要获取的是什么。
13:06
这样,那如果说你要是没加这个提示,其实有时候就容易出错了哈,你看举个例子,下面于我这块呢,给大家演示一些这个错误的情况哈,呃,我这块呢,我再重新的进行一个重编一下吧,我们加了几个注释也不影响啊,请输入你的姓名,这个姓名呢,你说我写个123能写不?我姓姓名我就123,诶你看发没报错啊,那这个时候的这个123他其实是是不是带着双引号的123了,哎,对的啊,行,那接着下面呢,请输入你的方龄。言外之意呢,其实我们知道应该写一个in的型啊,那如果这个用户呢,一不小心我就写了一个,我今年呢21.3岁了。你说这时候我要一回车会出问题,不感觉肯定是有点问题了是吧?哎,我把21.3是不是去人家呢,叫next int表示呢,我就要去获取一个整形,但是呢,用户写的不满足人家的要求。
14:15
那那到这儿呢,到这儿就错了。哎,那这时候就报了一个错,什么意思啊,输入的这个信息啊,不匹配嘛,就是我要求是个int,你输入的是一个呃,其他double类型的,这就挂了,而且一旦错了以后呢,你发现这个程序呢,就终止了,呃,就不再往下执行了。哎,这就是我们所谓的一个异常,咱们讲完面向对象以后呢,系统的来说一下异常啊,至少大家能看到一点,就是说我程序在执行过程当中,一旦出现异常以后呢,就终止了。哎,这个意识呢要有啊,就跟说人一样,正常来讲,你天天可以活蹦乱跳的生活工作是吧,学习一旦你生病了,就好比是你泡一场了,哎,那这时候呢,就都停止,哎就不再往下继续的按正常的那个流程去执行了啊行,你看这个呢,注意是出现这样的错误啊,我们把这个事呢,要格外的给大家强调一下,这个是需要注意的这个问题啊说呢我们需要呃按照这个,呃这个。
15:23
类型的这个要求啊,来输入哎或这样说吧,我们需要根据啊相应的这个方法啊,来啊这个输入指定啊类型的这个值啊,如果输入的这个数据类型啊与要求的这个类型哎不匹配时,注意你看我这个我写的叫不匹配哈,也不是说非得严格就得就得一样,一会再举个例子,哎,如果输入的数据类型与要求类型不匹配时,哎,我们会哎报一个异常,这个异常啊,这异常呢,咱们就写一下啊叫input Miss match except。
16:14
啊,然后呢,导致这个程序。啊终止行,这就完事了啊,注意你看我这写的说是不匹配啊,就是没有说非得严格说非得一样,比如说呢,你看我重新我再去运行一下姓名写123。这样说呢,你是一个整形的,但是呢,我这时候呢,哎还可以给你读的,读成一个字符串,现当于加双引号了啊,放龄写了一个12体重,体重你看我这我写一个90行吗?按说呢,你这90这不是整型吗?我给他付一个大波型的可以吗?诶可以的啊,哎,那就相当于我们讲的那个运算的那个规则一样,你把整形付给double型是OK的啊,所以没有说非得要一样啊,就是你只要呢,有这样一个运算的规则,能够向上提升也OK啊,是不是相中我了,这个是不是没得选,我们说布尔行是不是只能出分FALSE3你你你能不能写个别的不写个初一不就挂了。
17:21
哎,对啊行,这个呢,大家使用的时候呢,注意一下啊,这是我们说的这个scanner。
我来说两句