------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
String类
一、String类的概述
String类代表字符串。Java程序中的多有字符串字面值(如"abc")都作为此类的实例实现。
字符串是常量。它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为String对象是不可变的,所以可以共享。
二、String中的方法
String类适用于描述字符串事物,那么它就提供了多个方法对字符串进行操作。
常见的字符串操作主要有:
获取:
1、获取字符串的长度。
int length():
2、根据位置获取位置上的某个字符。
char charAt(int index);
3、根据字符获取该字符或字符串在某字符串中第一次出现的位置, 没有找到则返回-1。
int indexOf(int ch); 从头开始索引
int indexOf(int ch,int fromIndex); 从fromIndex指定位置开始索引
int indexOf(String str); 从头开始索引
int indexOf(String str,int fromIndex); 从fromIndex指定位置开始索引
4、根据字符获取该字符或字符串在某字符串中最后一次出现的位置,没有出现则返回-1。
int lastIndexOf(int ch);从结尾开始索引
int lastindexOf(int ch,int fromIndex); 从fromIndex指定位置开始索引
int lastIndexOf(String str);从结尾始索引
int lastindexOf(String str,int fromIndex); 从fromIndex指定位置开始索引
判断:
1、字符串中是否包含某一个子串。
boolean contains(CharSequence s);
2、字符串中是否有内容。
boolean isEmpty();判断字符串长度是否为0。
3、字符串是否是以指定内容开头。
boolean startsWith(String str);从头开始判断
boolean startsWith(String str,int tofset);从索引处开始判断
4、字符串是否是以指定内容结尾。
boolean endsWith(String str);从结尾开始索引
boolean endsWith(String str,,int tofset);从指定处开始索引。
5、判断字符串内容是否相同。
boolean equals(String str);
6、判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase(String str);
转换:
1、将字符数组转成字符串。
构造函数:String(char[] cr);将字符数组转为字符串
String(char[] cr,int offset,int count);将字符数组的一部分转为字符串
静态方法:static String copyValueOf(char[] cr);
static String copyValueOf(char[] cr,int offset,int count);
static String ValueOf(char[] cr);
static String ValueOf(char[] cr,int offset,int count);
ValueOf还能将基本数据类型转为字符串类型。
2、将字符串转成字符数组。
char[] toCharArray();
3、将字节数组转成字符串
。
构造函数:String(byte[] cr);将字节数组转为字符串
String(byte[] cr,int offset,int count);将字节数组的一部分转为字符串
4、将字符串转成字节数组。
byte[] getBytes();
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
替换:
1、将字符串中的某个指定字符替换为另外一个字符。
String replace(char oldchar,char nwechar);
2、将字符串中的某个子串替换为另外一个字符串。
String replace(String oldstr,char nwestr);
切割:
1、通过字符串中的某个字符将字符串切割为。
String[] split(String regex);
子串:
1、获取字符串中的一部分。
String substring(int beginIndex);从指定位置开始到结尾
String substring(int beginIndex,int endIndex); 从指定位置开始到指定位置,包含头不包含尾。
大小写转换:
String toUppercase();转换为大写
String toLowercase();转换为小写
去除两端空格:
String trim();
自然顺序的比较
int compareTo(String str);
按字典顺序比较两个字符串。
三、StringBuffer
StringBuffer是字符缓冲区,也是一个容器,可以对字符串内容进行删增,它很多方法与String相同,StringBuffer的长度是可以变化的,可以操作多个数据类型,最终会通过toString方法编程字符串。
存储:
StringBuffer append();将自动数据作为参照添加到已有数据的结尾处。
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin);将缓冲区中自动数据存储到指定字符数组中。
插入:
StringBuffer insert(int index,数据);可以将数据插入到指定index位置。
删除:
StringBuffer delete(int start,int end);删除缓冲区中的数据,包含头,不包含尾。
StringBuffer deleteCharAt(index);删除指定位置的字符。
修改:
StringBuffer replace(int start,int end,String str);替换指定位置的字符串。
void setCharAt(int index,char ch);替换自动位置的字符。
反转:
StringBuffer reverse();
四、StringBuilder
在JDK1.5版本之后出现了StringBuilder,StringBuilder是Stringbuffer的简易替换,比Stringbuffer更有效率,但StringBuilder不是线程同步的,在多线程操作时有安全隐患,所以在多线程执行时建议使用Stringbuffer。