00:00
行,那接着呢,我们再往下讲,那有了自动装箱,自动拆箱以后,实际上我们看到的话呢,这个非常的方便,就看似呢,它俩甚至都可以理解成就是像一个类型的一样了,直接呢就可以这样复制了,所以下边的话呢,咱们也不整这么复杂了,说这个三者之间两两转化,这一共呢是有六个箭头,咱就不整这么复杂了,既然你俩都有自动装箱,自动拆箱了,那我潜意识呢,就把它俩看成是一个整体的了,所以下一步呢,我们要关注的就是基本数据类型和包装类,它俩呢看成是一个整体跟咱们这个string之间的一个相互转换。所以呢,下一个问题咱们探讨的就是这个。在这写一下,首先呢,我们关注一下基本数据类型,包装类,把它俩呢,我就都写到这一边了,怎么呢,转化成string类型。怎么转化成这个string类型,这个原来我们基本数据类型,比如说我有个in型的叫NUMBER1,是个十,我现在呢,想给它转换成一个四针形,怎么转直接这样行不?
01:12
肯定不行吧,就是我们这个基本数据类型跟string之间没有这种自动型提升,咱们说过了,但是你可以是不是直接加上一个运算啊,对,就是这种方式,我们让一个基本数类型连接上一个字符串,里边你就别放内容了,那出来的结果呢,就是一个string。嗯,这个呢比较清楚,我这是拿int举的例子,其他的那七种,除了int之外的那七种都可以,波尔型是不是也可以啊对,没问题,行,那这呢也可以看成是咱们的料叫方式一,诶方式一就直接呢,相当于这种做连接运算。这样的一个方式,那除了这个方式一之外呢,我们还有一种方式,这的可以再提一下。
02:02
基本数据类型,包装类想转化为string,这个时候呢,我们就去后边这个string当中去找方法,那当中定义了这个方法叫value of,叫value of,相当于我们这呢就可以叫调用string,它呢叫重载的叫value of,后边呢是具体的某一个类型的这个方法。来举例子,比如说咱们现在呢,我再换一个其他的换一个float吧,Float呢F1这呢,我写一个值12.3。这呢得加上个F了,然后我这呢想把它呢转化为一个string,我呢不想做这个连接运算了,这时候你就调这个string.value of,你会看到呢,这里边儿这不有好多种这个参数的方法了,那我这时候呢就找那个float了,那你把这个F1呢扔进去,那此时呢返回的就是一个string,哎,接收一下。
03:10
哎,这样的话呢,就可以了。这时候呢,它是一个字符串了,我们要输出的话呢,这个长的是双引号里边有一个12.3,是不是长这样,对这样的一个形式。哎,这呢,就咱们说的这个方式二啊,就是调用这个string。诶叫value of这样的一个方法里边呢,填你具体的是哪一个类型的这个变量了,这儿呢,咱们方法当中呢,写的是基本数据类型,但实际上呢,咱们有这个自动的拆箱,如果我这时候呢,是一个比如我大写的这个double是一个包装类了,诶我这呢是得new一下才能体现这个是一个包装类的对象,我写一个12.4。行,那我呢,照样呢,可以用这个叫string。
04:00
哎,String点叫value of。然后我把这个第一能扔进去吧。也是可以的,这个呢,IR3这个it tr2跟三我们都可以打印一下。诶,保存。行,这个值呢,都没有问题,就是这个位置的话呢,你看啊,这个位置我们现在调它的时候,它给我转换成另外一个方法了,这写的object写object呢也可以,就是呢,我们真实这里边这个数据是什么,我就给你都转化出来,你呢,实际上里边存的还是个12.4,就是一个具体的数据了,诶我们这时候输出的呢,就是一个加双引号的一个12.4。总之就是不管呢,你是基本数据类型还是包装类,我们呢,都可以调Y65这个方法转化为一个字串。就行啊就可以了,这呢是我们把这个事呢先说清楚了,这个事说清楚以后,我们这个再接着反过来提一下,说string类型怎么呢,把它转换为基本数据类型,或者呢是它对应的包装类。
05:18
这呢,我写一个五。这样现在呢,反过来了,我现在呢,有一个string的一个变量叫ST21,比如说叫123。现在呢,我想把这个123转换为一个基本数据类型,或者是你转换成这个inte也可以,那首先明确这一点呢,是这样写是不是肯定不可以呢。这样不行吗?这咱们前面讲这个运算的时候提过这个事儿,这是不可以的,那这样不可以的话,那这样可以吗。
06:01
是不是也不行,这个怎么解释一下呀。强转不可以,就是能强转的一定呢,你这个HR1这个变量所属的类型和我们这个类型呢,得有子符类的关系,否则的话呢,这编译呢就也不过这呢是咱们上午讲的一个知识点,咱们上午讲的时候,你看最后咱们说了一下问题123,在这个问题三这块呢,咱们这块呢,这不就出现过我把一个date啊,咱们这是直接这样我去应付的哈,包括呢,你在前面这块加一个小括号,你写个string,它也不允许。就是两个没有任何关系的这样的,呃,类型没有子汇类关系的,给它强转呢,是一定会报错的,就这样的问题,所以呢,把它给注释掉,这呢都是错误的情况。错误的情况,那么应该怎么去处理呢?这儿呢还确实得需要大家记一下了,就是前面的话呢,这个自动装箱啊,自动拆箱啊,大家记住了,包括这个的话呢,你可以说直接我就记一下这个连运算也行,但是这个话呢,你必须得记了,你要是不记这块的方法,你还真不好把它给它脱开这个双引号,这里边我们需要调的呢,就是包装类种的方法。
07:23
诶调用包装类的什么呢?叫pass叉叉叉这个方法。举例子,咱们这个呢,是一个双引号的123,然后呢,我这时候呢,想把它转化成对应的int或者integer也可以,我们呢就得调这个叫integer,它有个方法呢,叫pass。这个。Pass,然后把我们这个string呢,你扔进去。那我们看这个方法,它返回的就是一个in的性的值,我们呢接收一下。这呢,就是我们想要的,你把双引号脱去以后的这个NUMBER2,这是一个数了,比如说你看我这加个一,它就能是123124了。
08:09
看没有问题,这呢就是我们调的这叫pass叉叉叉方法,这里边呢,是你这个string类型的这样的一个哎变量,哎这样个情况啊,那再举个例子,比如这四针形的HTR2,这呢,我写一个双引号的叫处写一个处,然后呢,我想把它变化成一个布尔类型了,那你是不是就得调布尔点pass布尔啊。把它俩扔进去,然后呢,我们接收为CTRL一下波尔类型的一个变量,这个叫B1了,打印一下B。OK,没问题,那这时候呢,我们执行。OK,这是正确的,那我要是改成一个叫初一呢,按照我们刚才那会儿讲的这个经验上来讲呢,感觉就是一个false了,是吧,因为咱们那会儿呢,像一开始说他的时候说你这要写的不是一个标准的处,或者是啊,不是一个标准的处的话呢,就都认为是false了,不会在这跑一场,哎这块呢也同样的道理,哎你这块呢,你写一个初一,他呢就认为你都是一个false了。
09:18
那你这块呢,我这儿能写个123A吗。这是不是就出错了,对,这个跟咱们前面呢,提到这个事也是一样的。这呢就又报这个number form me的exception了,所以说呢,这个处理的时候呢,还是要小心一点的,我们要想给它转化,就这个string呢,稍微,呃,就这个布尔呢,稍微特别一点,除了它之外呢,呃,你要转的时候呢,它确实是有可能会出现number four me的exception,所以我们在转化之前呢,你得保证这个数呢,确实是可以转的啊,所以这个呢,我们要小心一点,说可能会报。报这个我们叫number。
10:00
Format他的exception。诶这个呢,小心一点就可以了,这个波尔型的话呢,它就不会爆了,只要你不是个处,它就都认为是false了,行,那这呢就是我们说清楚了这样的一个转换。行,那至此的话呢,关于他们这几者之间的相互转化呢,咱们就说完了,这里边我写的这个操作的方式呢,比较丰富,大家呢,没有必要,每一个呢,你研究好几种方法,说诶你看你会不会这个你不会你不会,你看我会好几种,没有任何意义,那么刚才这里边呢,我们总结一下,大家只需要记住其中几个就完了,第一个知道基本数据类型和包装类之间呢,有一个自动装箱,自动拆箱,原来的构造器啊,还有这个叉叉value了,你可以不用记了,直接呢就用自动装拆箱就可以搞定它们二者之间的一个转换。然后呢,他们二者呢,你可以看成一个整体和string的转换的话呢,一方面你可以记住一个叫value of,就是从他俩呢往这个string这块转,叫VALUE6OF,然后往回转呢,记住这个叫pass叉叉叉,尤其这个一定要记住了。
11:07
这个你要记不住的话呢,你就确实还转不回去。行,就记住这么几个操作呢就可以了,其他的这些方法呢,其实你就不用记了,只要你有一种方式转化过去,代码呢就能够跑得通就可以了,这效率之间呢,没有太大差别,哎,这样就OK好。
我来说两句