黑马程序员_java中特殊的引用类型(对第十三课String类和包装类总结)

------- 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指向的是同一对象,不会多开辟空间了...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值