1、String对象不可变
String对象的内容是不可改变的。String对象中每一个看起来会修改String的方法,实际上都是创建一个
全新的string对象。
2、重载“+”和StringBuilder
一个字符串每次和+号相连会自动把+后面的内容转化为字符串。
如String s="abc"+"de"+17; //得到字符串abcde17,这会带来性能问题,因为为了生成最终
的s,会产生一大堆的中间对象,abcde就是一个中间对象,需要垃圾回收器进行回收。
改进方法:使用StringBuilder对象,不会产生多个中间对象。
StringBuilder s=new StringBuilder();
s.append("abc");
s.append("de");
s.append(17);
3、在重写tostring方法的时候,如果要打印对象地址的话,不能直接使用this关键字
应该调用super.toString()方法。
class A
{
public String toString()
{
return super.toString();
}
}
4、string上的一些常用操作方法
length():获取string中字符的个数
charAt(int index):获得指定位置上的char
toCharArray():生成一个char数组
equals(),equalsIgnoreCase():比较两个String内容是否相同
contains(char序列):是否包含参数内容,返回boolean
startswith():可能的起始String,返回boolean
substring(起始索引,终止索引):返回一个新的String
concat(要连接的String):返回一个新的String,内容是原String加上括号内的String
toLowerCase(),toUpperCase():转换字符大小写
trim():删除String两端的空白字符,返回一个新的String对象
5.、java的格式化输出
java也可以类似于c语言一样格式化输出,System.out.printf()或者System.out.format()。
float f=0.122f;
int i=1;
System.out.printf("%d,%f",a,f);
也可新建一个Formatter类,
Formatter f=new Formatter(System.out输出的地方);
f.format("%d,%f",a,f);
6、split(正则表达式)方法,返回一个String数组
功能:将字符串从正则表达式匹配的地方切开
7、正则表达式
常用的正则表达式字符类
. :任意字符
[abc]:包含a,b或c的任何字符,等同于a|b|c
[^abc]:除了abc之外的任何字符
[a-zA-Z]:从A到Z或从a到z的任何字符
\s:空白符
\S:非空白符
\d:数字
\D:非数字
\w:词字符
\W:非词字符
正则表达式中的量词
X?:一个或零个X
X*:零个或多个X
X+:一个或多个X
X{n}:恰好出现n次X
X{n,}:至少出现n次X
X{n,m}:X至少出现n次,且不超过m次