黑马程序员—常用String类和StringBuffer

来源:互联网 发布:千里眼软件 编辑:程序博客网 时间:2024/04/30 22:54

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

String s1=”abc”;

String s2=new String(“aba”);

s1是一个类型型变量,”abc”是一个对象;字符串最大的特点是一旦被初始化就不可以被改变。


s1s2有什么区别?

s1在内存中有一个对象,s2在内存中有两个对象。


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

常见的操作有哪些?

1、获取;

1.1字符串中包含的字符数,也就是字符串的长度;int length():获取长度。

1.2根据位置获取位置上某个字符;char charAt(int index)

1.3根据字符获取该字符在字母中的位置;int indexOf(int ch)(传的是Unicode码):返回的是ch在字符串中第一次出现的位置;int intdexOf(int ch,int fromIndex):fromIndex指定位置开始,获取ch在字符串中出现的位置。

int intdexOf(String str):返回的是str在字符串中第一次出现的位置;int intdexOf(String str,int fromIndex):fromIndex指定位置开始,获取str在字符串中出现的位置。


2、判断

2.1字符串中是否包含某一个子串;boolean contain(str);特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在,所以,也可以用于对指定判断是否包含;如:if(str.indexOf(“aa”)!=-1),该方法既可以判断,又可以获取出现的位置。

2.2字符串中是否有内容;boolean isEmpty():原理就是判断长度是否为0

2.3字符串是否是以指定内容开头;boolean strartsWith(str);

2.4字符串是否是以指定内容结尾;Boolean endsWith(str);

2.5判断字符串内容是否相同;复写了Object类中的equals方法;boolean equals(str);

2.6判断内容是否相同,并忽略大小写;boolean equalsIgnoreCase();


3、转换

3.1将字符数组转成字符串;构造函数:String(char[])String(char[],offset,count):将字符数组中的一部分转换成字符串);静态方法:static String copyValueOf(char[]);static String copyValueOf(char[],int offset,int count);static String valueOf(char[]),

3.2将字符串转换成字符数组(重点);char toCharArray();

3.3将字节数组转换成字符串;构造函数:String(byte[])String(byte[],offset,count):将字节数组中的一部分转换成字符串)

3.4将字符串转换长字节数组;byte[]; getBytes();

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


String类中方法分类:

获取:



修改:






对比:



StringBuffer是字符串缓冲区,是一个容器(C create  U update  R read  D delete)

1、长度是可变化的;
2、可以字节操作多个数据类型;

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


1、存储,StringBuffer append():将指定数据作为参数添加到已有数据结尾处;StringBuffer insert(index,数据):可以将数据插入到指定index位置。

2、删除,StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含endStringBuffer deleteCharAt(index):删除指定位置的字符。

3、获取,char charAt(int index);int indexOf(String str);int lastIndexOf(String str);String substring(int start,int end)

4、修改,StringBuffer replace(start,end,string);void setCharAt(int index,char ch);

5、反转,StringBuffer reverse();


字符串转换成基本数据类型:xxx代表基本数据类型,Xxx代表基本数据类型对象

xxx a=Xxx.parseXxx(String);

如:int a=Integer.parseInt(“123”);double b=Double.parseDouble(“12.23”);


基本数据类型中的进制转换方法:

十进制转成其他进制:

toBinaryString(int  i);----------转换成二进制数

toHexString(int  i);-------------转换成十六进制数

toOctalString(int  i);------------转换成八进制数

其它进制转换成十进制:

parseInt(String s,int radix);-----radixs的进制表现形式


Jdk1.5新特性:如Integer a=127;Integer b=127;这里a==b的,因为当数值在byte范围内时,对于新特性,如果该数值已经存在,则不会再开辟新的空间。