JAVA-初步认识-常用对象API(String类-常见功能-转换)
一.
除了获取以外,还有第二部分,就是转换,可以将字符串变成很多东西。这些方法都是最常用的。
2. 转换
2.1 将字符串变成字符串的数组(用的是字符串的切割)
返回的肯定是一个数组,参数列表是什么?应该交代切成几份。这块比较特殊,应该是按照什么规则切,这里面传递的应该是一个规则,可以用一个字符串表示这个规则。
这里面传递的是正则表达式,目前还没有学到。后期会深入地讲解这个功能,现在先简单地认识一下。
通常一个字符串,如果想要取出某一部分的子串,标定起始位和尾位。如果取得字串多的话,很麻烦。
直接采用split方法切取,用","来切,变成三段,可以将三份取出来。
如果符号是点号.的话,使用"."切不开。
这函数里面不是普通字符串,这个往里面放的是规则,这个规则可以放普通规则,也可以放指定规则。指定的就是正则的,复杂规则。而这个点号就是正则中的一个特殊符号,它不是普通点,这么切不行。那怎么办呢?以后会讲述到的。
如果非要现在切的话,把点号转印一下,给它转印成普通点就行了。\.是把点号转印成普通符号,如果要在字符串中出现单个的反斜线,将这个反斜线也要转印一下,因此就是\\.的形式。
切割动作会涉及到正则表达式。
2.2 将字符串变成字符数组
返回值类型是char,参数列表为空,是对象自己的方法,而且是对整个字符串对象进行处理。
2.3 将字符串转成字节数组
现在接着将字符进行粉碎,打成最小单位,最小单位是字节,一个字符是两个字节,接着往小的单位粉碎。
返回是字节数组,因为返回多个字节,
"ab你"这个字符串中有四个字节,a和b都是一个字节,而"你"是两个字节。DOS的结果中97和98是理解的,但是-60和-29是怎么来的?
阿斯科码表(美国标准信息交换码)里面记录的是字母,数字和符号,中文的GB2312记录了中文和二进制的对应关系,中文怎么编码的呢?一个中文对应两个字节来的,而且这两个字节最高位都是1,所以才是负数。什么数据到计算机里面都是二进制。
2.4 将字符串中的字母转变成大小写
这个东西转完之后有结果吗?是有的,比如说我有abc小写,在常量池里面。我调用一个方法,它就变成了大写ABC,小写abc是不变的。字符串常量一旦初始化后,将不能改变,所以它必须返回一个新的。在原有的字符串常量上修改就出事儿了。
2.5 将字符串中的内容进行替换
替换完有结果,
如果是将"q"改成"o",结果不变,还是"java"。没找着,就说明没替换成功,这东西就还是原来的字符串。
结果是true,"java"是在常量池里面,替换这么一弄返回的还是原先的字符串,如果没有改变的话。没变的话,字符串就实现了共享,如果改变了,常量池中就有了新的,
还能替换字串,
截图中的CharSequence是字符序列。
截图中应该是将两个字符串整体进行替换。
还有一种转换,可以将字符串变成一个新的字符串的,如下
这个trim方法在开发的时候非常的有用,
这个方法可以将字符串两端的空格给取消了,中间的保留了。这个方法的好处在哪儿?对输入进行一次trim操作,防止有人在输入时最后敲击了空格。
2.7 将字符串进行连接
String concat (string)
两种操作结果都一样,但是采用contact是面向对象的操作。
想把字符数组变成字符串,得要静态方法,
转换里面还一些其他的方法。字符串里面有一堆厉害的静态方法,valueof可以将基本数据类型变成字符串,可以将布尔型数据变成字符串型,看下面的例子
System.out.pritnln(String.valueOf(4)+1); 结果为41,这里的4变成了字符了。