---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
1,String类:字符串
String():
String s = new String();
s = "hello";
String(byte[] bys):字节数组参数
byte[] bys = {97,98,99,100,101};
String s = new String(bys);
String(byte[] bys,int index,int length):字节数组-->字符串
byte[] bys = {97,98,99,100,101};
String s = new String(bys,1,2);
String(char[] chs):字符数组参数
char[] chs = {'a','b','c','d','e'};
String s = new String(chs);
String(char[] chs,int index,int length):字符数组-->字符串
char[] chs = {'a','b','c','d','e'};
String s = new String(chs,1,2);
String(Stringstr):字符串传参数
char[] chs = {'a','b','c','d','e'};
String ss = new String(s);
字符串对象一旦被创建就不能被改变。 指的是字符串常量值不改变。
判断
boolean equals(Object obj);判断两个字符串的内容是否相同,复写Object的方法
boolean equalsIgnoreCase(String str);判断两个字符串的内容是否相同, 不区分大小写
boolean contains(String str);判断一个字符串中是否包含另一个字符串
注意:判断字符串是否包含特殊字符.直接表示为str.contains(".")
boolean endsWith(String str);测试此字符串是否以指定的后缀结束
boolean startsWith(String str);测试此字符串是否以指定的前缀开始
boolean isEmpty();测试字符串是否为空
获取
int length():返回此字符串的长度
char charAt(int index):返回指定索引处的 char值
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex);从指定的索引开始搜索。
int indexOf(String str);返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex);从指定的索引开始。
int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, int fromIndex);从指定的索引处开始进行反向搜索。
int lastIndexOf(String str);返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str, int fromIndex);从指定的索引开始反向搜索。
String substring(int beginIndex) ;返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex) ;包含头不包含尾。
转换
byte[] getBytes();字符串--> 字节数组
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);将字符从此字符串复制到目标字符数组。
char[] toCharArray();字符串-->字符数组
static String copyValueOf(char[] data);返回指定数组中表示该字符序列的 String。
static String copyValueOf(char[] data, int offset, int count);返回指定数组中表示该字符序列的 String。
static String valueOf;把该数据类型的数据转换成字符串。
String toLowerCase();换成小写
String toUpperCase();换成大写
字符串的连接: String concat(String str);将指定字符串连接到此字符串的结尾。
替换
String replace(char oldChar, char newChar);用新字符替换旧字符(替换所有)
String replace(String target, String replacement);用新的子串换旧串
分割
String[] split(String regex);根据指定的字符串把一个字符串分割成一个字符串数组
String trim();去除字符串的前后空格
比较
int compareTo(String str);按字典顺序比较两个字符串。
int compareToIgnoreCase(String str);按字典顺序比较两个字符串,不考虑大小写。
2,StringBuffer(线程安全的):字符串的缓冲区,是一个容器,长度可变。
StringBuffer();构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer(int num);构造一个不带字符,但具有指定初始容量的字符串缓冲区。StringBuffer(String str);构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
添加
append:添加各种类型的数据
insert:在容器指定位置插入各种类型的数据。
删除
deleteCharAt:删除指定位置的字符
delete还可以用于清空StringBuffer的缓冲区
替换
replace
获取
charAt
长度和容量
length()元素的个数
capacity元素的理论值
获取元素的位置
indexOf
lastIndexOf
截取
substring(int start)
substring(int start,int end)
反转
reverse
字符串和StringBuffer的转换
String-->StringBuffer通过构造:
如:StringBuffer sb = new StringBuffer(String str)
StringBuffer--String通过toString方法
如:StringBuffer sb = new StringBuffer();
sb.toString();
3,StringBuilder:不保证线程安全
和StringBuffer的功能是一样的, 一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。
JDK版本的升级原则:
a:提高效率
b:提高安全性
c:简化书写
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>