String知识点

String类适用于描述字符串事物。
那么他就提供了多个方法对字符串进行操作。
1,获取:
1.1,int length() 获取长度。
1.2,char charAt(int undex );根据位置获取位置上的某个字符。
1.3,int indexOf(int ch);返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch, int fromIndex);从fromIndex指定的位置开始,获取ch在字符串中第一次出现的位置。
int indexOf(String str);返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex);从fromIndex指定的位置开始,获取str在字符串中第一次出现的位置。
int lastIndexOf(int ch);
2,判断:
2.1,boolean contains(str);字符串中是否包含某一个字串.
2.2,boolean isEmpty();判断长度是否为零。
2.3,boolean startsWith(str);字符串是否以指定内容开头。
2.4,boolean endsWith(str);

3,转换。
3.1 将字符数组转换成字符串。
构造函数:String(char[])
String(char[,offset,count);将字符数组中的一部分转成字符串。
静态方法:static String copyValueOf(char[]);
static String copyValueOf(char[] date,int offset,int count)
static String valueOf(char[]);
3.2将字符串转成字符数组。
char[] toCharArry();
3.3将字节数组转成字符串
String(byte[])
String(byte[],offest,count);将字节数组中的一部分转成字符串。
3.4将字符串转成字节数组
byte[] gerBytes();
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(begain,end);
7,转换,去除空格,比较。
7.1 将字符串转换成大写或小写。
String toUpperCase();
String toLowerCase();
7.2 将字符串两端的多余空格取出。
String trim();
7.3 对两个字符串进行自然顺序的比较。
int compareTo(string);

String类:
String s1=”abc”//s1是一个类类型变量,”abc”是一个对象。字符串最大特点:一旦被初始化就不能被改变。
String s2=new String(”abc”)
s1和s2的区别:s1在内存中有一个对象。s2在内存中有两个对象。

System。out.println(s1==s2);得到结果为false
System。out。println(s1.equals(s2));得到结果为true
String类复写了Object类中的equals方法,该方法用于判断字符串是否相同。

StringBuffer是字符串缓存区。
是一个容器。1,长度可以变化 2,可以操作多中数据类型 3,最终会通过toString方法变成字符串。
C cread U update R read D delete
1,存储
A.append(字符)将字符添加到A字符串对象中已有数据结尾,并返回A对象,也就是可以这样:A.Append().Append()。
A.insert(X,字符) 将字符添加到脚标第x位之后,之后的数据往后顺延。
2,删除
StringBuffer delete (Start,end);删除缓冲区的数据,包含start,不包含end。
StringBuffer deleteCharAt (index);删除指定位置的字符。
3,获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4,修改
StringBuffer replace(start,end,string);
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是不同步的,较StringBuffer效率高,所以建议用它,需要锁时,可以自己加,但是更多时候效率比较重要。他俩的方法都一样。

*java的升级围绕着三个部分:1,提高效率库。2,简化书写3。提高安全性

猜你喜欢

转载自blog.csdn.net/weixin_41804194/article/details/79659812