------ android培训 java培训、期待与您交流! ----------
一、String类创建对象
1.双引号创建对象
使用双引号创建字符串对象,首先会在缓冲区里查找,如果没有就会创建一个新的对象,如果有就直接引用。
2.构造函数创建对象
使用构造函数创建字符串对象,每次都会创建一个新的对象
二、字符串相加
1.字符串相加的原理
任何类型的数据和字符串相加都会得到字符串, 基本数据类型字面值直接拼接, 引用数据类型会把toString()返回值和字符串进行拼接
字符串相加内部是使用StringBuilder类的append()方法来实现的, 相加之后会得到一个新的字符串
2.注意
如果以String s = "a" + "bc";这种形式来写, 编译后直接改为String s = "abc";不会进行字符串相加
三、String类的构造方法
1.字节数组
String(byte[]) 使用默认码表将字节数组解码为字符
String(byte[], String) 使用指定码表将字节数组解码为字符
String(byte[], int, int, String) 使用指定码表将字节数组中一部分字节解码为字符
2.字符数组
String(char[]) 把字符数组转为字符串
String(char[], int, int) 把字符数组中的一部分转为字符串
1.字符串相加的原理
任何类型的数据和字符串相加都会得到字符串, 基本数据类型字面值直接拼接, 引用数据类型会把toString()返回值和字符串进行拼接
字符串相加内部是使用StringBuilder类的append()方法来实现的, 相加之后会得到一个新的字符串
2.注意
如果以String s = "a" + "bc";这种形式来写, 编译后直接改为String s = "abc";不会进行字符串相加
四、String类常用的方法
compareTo(); //获取比较两个字符串的值
indexOf() //获取索引的位置
substring() //获取子字符串 注:开始索引的位置包括,结束索引的位置不包括
charAt() //获取指定索引的字符
length() //获取字符串的长度
equals() //判断两个字符串是否相等
startsWith() //判断字符串以什么开始
endsWith() //判断字符串以什么结尾
getBytes() //转化为字节数组
toCharArray() //转化为字符数组
toLowerCase() //转化为小写
toUpperCase() //转化为大写
valueOf() //转化为字符串
matches() //正则表达式的匹配
replace() //正则表达式的替换
split() //正则表达式的分割
StringBuilder类的常用方法:
append(string); //添加
inset(int, String); //插入
delete(int, int); //删除
repalce(int, int , String); //替换
reverse(); //反转
六、String类、StringBuilder类、StringBuffer类的区别
String类的特点:是常量,不可改变的。
StringBuilder和StringBuffer类的特点:是可变的子符序列,其对象内容是可以改变的。
StringBuffer类: 同步的, 线程安全, 但效率略低(jdk1.0开始使用)
StringBuilder类: 不同步, 效率高. 单线程的程序使用这个类更好. (jdk1.5开始使用)