1.String类
1)字符串一旦初始化不得被改变,字符串变量可以改变——字符串是对象,字符串变量是对象变量。
常量池——在方法区中,存储字符串,已存在的字符串对象会被直接调用。
String s1 = "abc"; String s2 = new String("abc"); String s3 = "abc"; s1 == s2; //false s1 == s3; //true
2)String类常见操作:
a.获取
(1) int length() 获得字符串长度——注意,不同于数组的.length,多了括号。
(2) char charAt(int index) 获得指定位置的字符
(3) int indexOf(int ch) 返回字符在字符串中第一次出现的位置,没有则返回-1。
int indexOf(int ch, int fromIndex) 从formIndex位置开始,获取字符出现的下一个位置。
int indexOf(String str) 返回str(短字符串)在字符串中第一次出现的位置——可替代contains()方法。
int lastIndexOf(int ch) 反向索引字符ch出现的位置。
b.判断
boolean contains(CharSequence str) 是否包涵指定内容;
boolean startsWith(String str) 是否以指定内容开始;
boolean endsWith(String str) 是否以指定内容结尾;
boolean isEmpty() 是否为空——判断length()是否为零;
boolean equals(String str)——复写了Object的equals方法,判断字符串是否相同,而非是否同一字符串对象。
boolean equalsIgnoreCase(String str)——类似equals(),不分大小写。
c.转换
字符数组转换成字符串:
构造函数:String(char[]); String(char[],offset,count)从offset角标开始,取count个。
静态方法:static String copyValueOf(cha[])...
字符串转换成字符数组
char[ ] toCharArray();
字节数组转换成字符串
字符串转换成字节数组
d.替换
String replace(char oldchar,char newchar) 替换字符串中的字符——如果发生了替换,则会产生新字符串。
String replace(CharSequence oldstr,CharSequence newstr)
e.切割
String[ ] split(regex);
f.子串
String substring(begin);——获取从开始角标到结尾的子串;
String substring(begin, end);——获取从开始角标到结束角标的子串,包含头不包含尾;
g.转换,去除空格,比较
String toUpperCase();——转换为大写
String toLowerCase();——转换为小写
String trim();——去除字符串两端的空格
int compareTo(String str);——挨个比较,按ASC比。
2.StringBuffer——字符串缓冲区,容器
长度可变化,可直接操作多种数据类型,并通过toString();转换成字符串。
1)存储
StringBuffer append( ...);——将指定数据存储到已有数据的尾部
StringBuffer insert(Int offset, ...);——插入指定数据到offset角标
2)删除
StringBuffer delete(start,end);——包头不包尾
StringBuffer deleteCharAt(int offset);——删除指定字符
3)获取
char charAt(int offset);——获取指定位置的字符
int nidexOf(String str);——获取指定字符串位置
int lastIndexOf(String str);——从尾部获取指定字符串位置
ing length();——获取长度
String substring(int start , int end);——获取子串
4)修改
StringBuffer replace(int start,int end,String str);——替换一部分
void setCharAt(int offset,char ch);——替换一个字符,注意没有返回值
5)反转
StringBuffer reverse();
6)将StringBuffer中的指定数据存储进指定字符数组中
void getChars(int srcBegin , int srcEnd , char[] dst , int dstBegin)
3.StringBuilder——与StringBuffer使用方法类似
1.5版本后出现,线程不同步,提高了效率。
4.基本数据类型对象包装类
int Integer
char Character
Xxx.toString(...); ——将数据转换为字符串
xxx a = parseXxx(String str); ——将字符串转换为数字,注意数据格式
新版本自动装箱拆箱,无需对数据和数据对象进行显式转化