黑马程序员——java复习总结——字符串

来源:互联网 发布:哈登本赛季数据 编辑:程序博客网 时间:2024/06/06 01:09

------- android培训、java培训、期待与您交流! ----------


一、String类

 

String类代表字符串,java程序中所有的字符串字面值(如”abc”)都作为此类的实例实现。他没有子类,字符串是常量,他们的值在创建之后就不能被更改。

 

1.1   字符串的创建方法

 

String s1 = new String(“abc”);

String s1 = “abc”;

如上,就是字符串的两种创建方法,字符串最大的特点是一旦被初始化就不可能被改变。但是指向字符串的类类型变量是可以变的,如上,就是s1可以变化,不能变的是”abc” 的内容。

 

1.2   字符串的判断方式

 

在String类中,复写了Object中的equals方法,建立了自己独特的判断内容方式,该方法用于判断字符串是否相等。

 

1.3   s1和s2的区别

String s1 = “abc”;

String s2 = new String(“abc”);

对于s1和s2的区别:

s1有一个对象,就是”abc”;

s2有两个对象,分别是”abc”,和new String;

 

1.4   常量池

 

字符串在内容中有一个常量池,用于存放字符串。如果用到这个常量池中没有的字符串,那么就会创建这个常量,如果有这个常量,就不会创建新的常量,而使用已有的常量。

 

二、字符串的操作方法

 

String类适用于描述字符串事物,那么就提供了多个方法对字符串进行操作,而字符串的常见操作有,获取,判断,转换,替换。

 

2.1  获取

 

2.1.1 获取长度,也就是字符串的长度;

int length();

 

2.1.2 根据位置获取位置上的某个字符

char charAt(int index);

 

2.1.3 根据字符获取该字符在字符串中的位置

int indexOf(int ch);返回的是ch在字符串中第一次出现的位置

int indexOF(int ch,int fromIndex);从指定位置开始,获取ch在字符串中的位置。

 

int indexOf(String str);返回str在字符串中第一次出现的位置

int indexOF(String str,int fromIndex);从指定位置开始,获取str在字符串中的位置

 

2.2  判断

 

2.2.1 字符串中是否包含某一个子串

boolean contains();

特殊之处:indexOf(String str):可以索引str第一次出现位置,如果返回-1表示str不存在,所以也可以用indexOf判断字符串是否包含。

2.2.2 字符串中是否有内容

boolean isEmply():原理就是判断字符串长度是否为零。

2.2.3 字符串是否以指定内容开头

boolean startWith(String str);

2.2.4 字符串是否以指定内容结尾

boolean startWith(String str);

2.2.5 判断字符串内容是否相同

boolean equals(String str);复写了Object类中的equals。

2.2.6 判断内容是否相同并忽略大小写

boolean equalsIgnoreCase();

 

2.3  转换

2.3.1 将字符数组转成字符串

String(char[])

String(char[],offset,count);将字符数组中的一部分转成字符串。

静态方法:

static String copyValueOf(char[]);

static String copuValueOf(char[] data,intoffset,int count)

static String valueOf(char[]);

2.3.2 将字符串转成字符数组

char toCharArray[];

2.3.3 将字节数组转成字符串

String(byte[])

String(byte[],offset,count);

2.3.4 将字符串转成字节数组

byte[] getBytes[];

2.3.5 将基本数据类型转成字符串

static String valueOf(int);

但是还有另外一种方式,比如3+””;也可以将3转成字符串,所以这并不常用

static String valueOf(double);

 

2.4  替换

2.4.1 替换字符

String replace(old char,new char);

原字符串不变,返回一个新字符串,若找不到被替换的字符,则返回原字符串。

2.4.2 替换字符串

String replace(old String,new String);

 

2.5  切割

 

String[] split(String)str;

传入一个要切割的符号,返回的是一个字符串数组

 

2.6  获取子串

 

subString(int begin);

从指定位置到结尾处

subString(int begin,int end) ;

从指定位置到指定结尾,包含头不包含尾。

 

2.7 转换,去除空格

2.7.1 将字符串转成大写或者小写

String toUpperCase();

String toLowerCase();

2.7.2 将字符串两端的多个空格去除

String trim();

2.7.3 对两个字符串进行自然顺序的比较

int compareTo(String);将两个字符串依次比较,返回整数负数或者零表示大小。

 

三、StringBuffer

 

3.1  StringBuffer的概念

 

StringBuffer是一个容器,可以对字符串的内容进行修改,它有很多和String相同的方法,StringBuffer的长度是可变的。

 

3.2 StringBuffer的方法

StringBuffer和String类很像,也有着操作字符串的方法,有存储,删除,获取,修改四类方法。

 

3.2.1 存储

StringBuffer的存储方法有两种

append();将字符串存储到StringBuffer容器中。

insert(int index,String str);将数据插入指定位置。

 

3.2.2 删除

delete(int begin,int end);删除缓冲区的数据,含头不含尾

deletecharAt(int index)删除指定位置的数据

 

3.2.3 获取

char charAt(int index);获取指定位置的字符

int indexOf(String str)获取字符串的位置

String substring(int start,int end);返回的是一个String,含头不含尾

 

3.2.4 修改

replace(int start,int end,String str);替换,含头不含尾的替换

setcharAt(int index,char ch);替换指定位置的字符

 

3.2.5 反转

 

reverse();反转字符串。

 

3.3 StringBuilder

 

它是后期1.5版本出现的String容器,和StringBuffer用法一样,唯一不同的是不同步。

 

即是升级出现的,升级的三个因素有:

方便书写;提高效率;提高安全性。

 

四、基本数据类型对象包装类

 

4.1  基本数据类型

 

基本数据类型是有8种,分别是byte,short,int,long,boolean,float,double,char。

它们对应的包装类是:


通过将基本数据类型包装成对象,就可以使用这些对象的方法。

 

4.2  Integer建立对象时的小特性

 

运行结果:

 

对于Integer对象,内存中也有一个小于常量池,对于小于byte类型(128)的数,若已经存在就不会再开辟新的空间,所以对于两个127的Integer是执行同一地址的,但是128则不是。


0 0