黑马程序员_JavaAPI-String

来源:互联网 发布:打鸡血网络语言 编辑:程序博客网 时间:2024/05/22 05:34

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

String类

适用于描述字符串事物。那么它就提供了多个方法对字符串进行操作。

1、获取

(1)字符串中包含的字符数,也就是字符串的长度。

intlength()(数组中也有length属性,后面没有括号)

(2)根据位置获取位置上某个字符。

charcharAt(int index);//当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException。

(3)根据字符获取该字符在字符串中的位置(找不到返回-1,lastIndexOf是从右往左开始查找)

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

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

2、判断

(1)字符串中是否包含某一个子串

booleancontains(char)

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

(2)字符串是否有内容

booleanisEmpty();原理就是判断length()是否为0。

(3)字符串是否是以指定内容打头

booleanstartWith(str);

(4)字符串是否是以指定内容结尾

booleanendWith(str);

(5)判断内容是否相同,并忽略大小写

booleanequalsIgnoreCase();

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[]);

(2)将字符串转成字符数组

char[] toCharArray();

(3)将字节数组转成字符串

String(byte[]) String(byte[],offset,count)

(4)将字符串转成字节数组

byte[] getBytes();

(5)将基本数据类型转换成字符串

staticString valueOf(int)

staticString valueOf(double)

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

4、替换

replace(char oldchar,char newchar)

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

5、切割

String[]split(regex);

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

Stringsubstring(begin);

Stringsubstring(begin,end);

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

(1)将字符串转换成大写或者小写

StringtoUpperCase()

StringtoLowerCase();

(2)将字符串两端的多个空格去除

Strngtrim();

(3)对两个字符串进行自然顺序的比较

intcompareTo(string);


StringBuffer是字符串缓冲区,是一个容器。

StringBuffer sb=new StringBuffer();

1、长度可以变化

2、可以字节操作多个数据类型

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

1)存储

StringBufferappend();将指定数据作为参数添加到已有数据结尾处

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

2)删除

delete(intstart,int end)删除缓冲区中的数据,包含start不包含end

deleteCharAt(index)删除指定位置的字符

3)获取

charAt(int index)

indexOf(String str)

4)修改

replace(start,end,string);

setCharAt(intindex,char ch)

5)反转:reverse();

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

voidgetChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

StringBuffer sb=new StringBuffer("abcdef");

char[] chs=new char[6];

sb.getChars(1,4,chs,1);

在JKD1.5版本之后出现了StringBuilder。

StringBuffer是线程同步(效率低);StringBuiler是线程不同步(不安全)

类StringBuilder,StringBuffer的一个简易替换。

升级三个因素

1、提高效率

2、简化书写

3、提高安全性

基本数据类型对象包装类

byte                           Byte

short                          short

int                            Integer

long                           Long

boolean                     Boolean

float                          Float

double                      Double

char                          Character

基本数据类型对象包装类的最常见作用:就是用于基本数据类型和字符串之间做转换。

基本数据类型转换成字符串:基本数据类型+"";基本数据类型.toString(基本数据类型值)。

如:Integer.toString(34);//将34整数变成“34”

字符串转成基本数据类型:基本数据类型包装类 x=基本数据包装类.parseInt("123")

Integer.parseInt(String);

Integer i=new Integer("123");

intnum=i.intValue();

十进制转成其他进制:

toBinaryString();

toHexString();

toOctalString();

其他进制转成十进制

parseInt(string,radix);

JDK1.5版本以后出现的新特性

1、Integer x=new Integer(4)——>Integer x=4;//自动装箱

x=x/*x.intValue()*/+3;//对象加整数。x进行自动拆箱,变成int类型和2进行加法运算,再将和进行装箱赋给x

2、Integer m=128;Integer n=128;sop(m==n);//false

   Integer a=127;Integer b=127;sop(a==b);//true,因为a和b指向了同一个Integer对象。因为当数值在byte范围内,对于新特性,如果该数值已经存在,则不会在开辟新的空间