您的位置:首页 > 职场人生

黑马程序员_java-String类

2012-12-21 16:53 363 查看
------- android培训java培训、期待与您交流! ----------

java中的String类在java.lang中

String s1="abc"; //s是一个类类型变量

字符串最大特点:

一旦被初始化就不可以被改变。

String类复写了object类中的equal是方法,该方法用于判断字符串是否相等。

String s2=new String("abc");

问:s1和s2有什么区别?

答:s1在内存中有一个对象。

s2在内存中有两个对象。

String s3="abc";

System.out.println(s1==s2); //false

System.out.println(s1==s3); //true

常见的操作:

1,获取。

1.1字符串中的包含的字符数,也就是字符串的长度。

int length():获取长度。

1.2根据位置获取位置上某个字符。

char charAt(int index):

1.3根据字符获取该字符在字符串中位置。

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

int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。

int indexof(String str):返回的是str在字符串中第一次出现的位置。

int indexof(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。

2,判断。

2.1 字符串中是否包含一个字符串。

boolean concats(str );

特殊之处:indexof(str):可以索引str是第一次出现的位置,如果返回-1,表示该str不在字符串中存在。

所以,也可以用于对指定判断是否包含。

if(str.indexof("aa")!=-1)

而且该方法既可以判断,又可以获取出现的位置。

2.2 字符串中是否有内容。

boolean isEmpty():原理就是判断长度是否为0.

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

boolean stratsWith(str);

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

boolean endsWith(str);

2.5 判断字符串内容是否相同。复写了Object类中的equals方法。

boolean equals(str);

2.6 判断内容是否相同,并忽略大小写。

boolean equalsIgnoreCase(str);

3,转换。

3.1将字符数组转换成字符串。

构造函数:String(char[])

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

静态方法:

static String copyValueOf(char[]);

static String copyValueOf(char[] data,int offset,int count)

static String valueOf(char[]):

3.2将字符串转换成字符数组。

char[] tocharArray():

3.3将字节数组转换成字符串。

String(byte[])

String(byte[],offset,count:将字节数组中的一部分转换成字符串。

3.4将字符串转换成字节数组。

byte[] getBytesS():

3.5将基本数据类型转换成字符串。

static String valueOf(int)

static String valueOf(double)

特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

4,替换

String replace(oldchar,newchar);

//如果替换的字符不存在,返回的还是原字符串。

5,切割

String[] split(regex);

6, 子串。获取字符串中的一部分。

String substring(begin);//从指定位置、开始。如果角标不存在,会出现字符串角标越界异常。

String substring(begin,end)//包含头,不包含尾

7,转换,去除空格,比较。

7.1将字符串转换成大写或者小写。

String toUpperCase();

String toLowerCase();

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

String trim();

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

int compareTo(string); 大于返回正数,小于返回负数,相等返回0。

StringBuffer是字符串缓冲区。

是一个容器。

1,长度可以变化。

2,可以操作多个数据类型。

3,最终会通过toString方法变成字符串。

C create U update R read D delete

1,存储。

StringBuffer append():将制定数据作为参数添加到原有字符后。

sb.append("abc").append(true).append(34);方法调用链

StringBuffer insert(index,数据):可以将数据插入到指定index位置。

2,删除。

StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。

StringBuffer deleteChartAt(index):删除指定位置的字符。

3,获取。

char charAt(int index)

int indexOf(String str)

int lastIndexOf(String str)

String substring(int start,int end)

4,修改。

StringBuffer replace(int start,int end,数据);

void setCharAt(int index,char ch);

5, 反转。

StringBuffer reverse();

6, 将缓冲区中的指定数据存储到指定字符数组中。

void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

JDK1.5版本之后出现了StringBuilder。

StringBuffer是线程同步。

StringBuilder是线程不同步。

以后开发,建议使用StringBuilder

Java的升级三个因素:

1,提高效率

2,简化书写

3,提高安全性

StringBuilder提高效率

将StringBuilder的实例用于多个线程是不安全的。如果需要这样同步,则建议使用StringBuffer。

------- android培训java培训、期待与您交流! ----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: