------- android培训、java培训、期待与您交流! ----------
通过今天对java语言中比较特殊的引用类型学习,我来给自己的学习内容做下简单直白的总结:
首先,让我来总结下特殊的引用类型:String类(该类不能被继承)
java已经给我们定义好了String类,我们只需要查阅API中的String类有哪些方法,就可以直接哪过来使用了...
字符串本身就是一个特殊的对象,就相当于是String类的一个匿名对象...
重点:字符串最大的特点:一旦被初始化就不能被改变..改变的是String类型变量的指向...
我们学习字符串就需要明确字符串的2大特性,第一是记住字符串的最大特点,第二是会操作字符串的方法:
String类是用于描述字符串这类事物的,那java肯定对它提供了多个方法来对字符串进行操作..
常见操作字符串的方法:
获取方法:比如 String s="abcdefg"
1,获取字符串的长度 :
(返回值 int) 方法:s.length();
2,根据位置索引获取该位置上的字符:当访问到字符串不存在的角标时,会发生字符串角标越界..
(返回值 char) 方法:s.charAt(3);
3,根据字符获取该字符所在的位置索引:当没有找到该字符,会返回-1..
(返回值 int) 方法:s.indexOf('a') ... 从0角标开始查找,字符a出现的角标位置...
(返回值 int) 方法:s.indexOf('a',4)... 从4角标开始查找,字符'a'出现的角标位置...
4,根据字符串获取该字符串所在的位置索引:当没有找到该字符,会返回-1...
(返回值 int) 方法:s.indexOf("ab") ... 从0角标开始查找,字符串"ab"出现的角标位置...
(返回值 int) 方法:s.indexOf("ab",5)... 从5角标开始查找,字符串"ab"出现的角标位置...
判断方法:比如 String s="abcdefg"
1,判断字符串是否以指定内容开头:方法里不能写字符,而是字符串...
(返回值 boolean)方法:s.startsWith("ab")...
2,判断字符串是否以指定内容结尾:方法里不能写字符,而是字符串...
(返回值 boolean)方法:s.endsWith("g")...
3,判断字符串中是否有内容:没内容返回true,有内容返回false...
(返回值 boolean)方法:s.isEmpty()... "" (true) " "(fase)
4,判断字符串中是否包含某一段子串(判断字符串是否存在):方法里不能写字符,而是字符串...
(返回值 boolean)方法:s.contains("cd") ...
特殊之处:(返回值 int )方法:s.indexOf("cd")...它是索引出字符串“ab”第一次出现的位置,如果没有,会返回-1,表示"ab"不在字符串中存在...所以也可以用于判断字符串中是否包含某一段子串,不存在或不包含或返回-1..
indexOf()方法既可以判断,又可以获取位置..如果只为判断用contains()方法,既判断又要获取位置用indexOf()方法
5,判断字符串内容是否相同:其实复写了Object类中的equals()方法(Object类中是判断对象是否相等)
(返回值 boolean)方法:s.equals(s1) ...
6,判断字符串内容是否相同并忽略大小写:
(返回值 boolean)方法:s.equalsIgnoreCase(s1) ...
类型转换方法:
1,将字符串转换成字符数组:
(返回值 char[] )方法:s.toCharArray() ...
2,将字符数组转换成字符串:在字符串的构造初始化时,就能自动将字符数组转成字符串..
构造函数时:new String(char[] arr) ...将字符数组全部转成字符串..
构造函数时:new String(char[] arr,3,3(个数))...将字符数组从角标3开始往后取3个元素,来转换成字符串...
不用构造初始化,还有个静态方法也能完成:
(返回值 String) 方法:String.copyValueOf(char[] arr)..将字符数组全部转成字符串..
(返回值 String) 方法:String.copyValueOf(char[] arr,3,4).将字符数组从角标3开始往后取3个元素,来转换成字符串
3,将基本数据类型转换成字符串:
(返回值 String) 方法:String.valueOf(int(char等))..8种基本类型都能转成字符串
比如:3+“”和String.valueOf(3) ..结果是一样的..
替换方法:比如 String s="hello"
(返回值 String)方法:s.replace('l','b')....如果要替换的字符或字符串不存在,返回的还是原串...
切割方法(可以将一个字符串分开,但分开的字符串必须要有存储的地方):比如String s="zhangsan,lisi,wangwu"
(返回值 String[])方法:s.split(",")....按字符串" ,"切割,切割完" ,"不存在了...返回的是字符串类型数组..
获取子串(获取字符串中的一部分):比如String s="abcdefghijk"
(返回值 String)方法:s.substring(2)..从角标2开始,到最后都获取
(返回值 String)方法:s.substring(2,5)..从角标2开始,到角标5获取(包含头,不包含尾)
大小写转换方法,去除2端空格方法,自然顺序比较方法:
将字符串转成大写或者小写:比如 String s="abcdef"
大写:(返回值 String)方法:s.toUpperCase()...
小写;(返回值 String)方法:s.toLowerCase()...
将字符串2端的多个空格去除:比如 String s=" abcdef "
(返回值 String)方法:s.Trim()..
对2个字符串进行自然顺序的比较:按照字典顺序,大于返回整数,等于返回0,小于返回负数..
(返回值 int)方法:s.compareTo(s1)..
扩展:StringBuffer类,是一个容器..字符串的缓冲区..
当我们的数据类型或者数据个数不确定,而最后要返回字符串的时候,就可以使用StringBuffer...
特点:
1,它的长度是可变化的..
2,可以直接操作多个类型存储..
3,最终都会通过toString()方法,变成字符串返回..
接下来,再总结另一个比较特殊的引用类型:基本数据类型对象包装类..
比如:一个基本数据类型:5,它也具有多种的表现形式等等,那么我们可以把它封装成对象,直接调用方法来实现..
基本数据类型包装类的最常见作用,就是用于基本数据类型和字符串类型之间的转换:
基本数据类型转成字符串:
3+” “ 或者String.valueOf(3)(上面总结过)
还有一种方法:Integer.toString(3)...将3整数变成字符串”3“..
字符串转成基本数据类型:
Integer.parseInt("1234")..将字符串”1234“转换成整数1234,会返回int类型..
注意:布尔类型的也能转,就字符类型的不能转...
JDK1.5版本以后,出现了新特性:自动装箱和自动拆箱
比如:Integer in=new Integer(4)和Integer in=4 是一样的..
Integer in=4 自动装箱了
in=in+2 (对象加整数? 可以) 因为in +2时,in进行了自动拆箱,变成了int类型,和2进行完加法运算以后,再自动装箱
注意:当数值在Byte取值范围内(-128到127),如果该数值已经存在,则不会在开辟新空间..
比如:Integer a=127和Integer b=127 a和b指向的是同一对象,不会多开辟空间了...