**s1和s2的区别
String s1 = "abc";
String s2 = new String("abc");
s1在内存中只有一个对象
s2在内存中有两个对象
字符串一旦被建立,内容就不会改变
**常见的操作
1.获取 int length(); char charAt(int index); int indexOf(int ch,int fromIndex)不存在返回-1;
2.判断 Boolean contains(str); boolean isEmpty(); boolean startsWith(str); endsWith(str);boolean equals(str);
boolean equalsIgnoreCase()忽略大小写比较;
3.转换
3.1将字符数组转换成字符串
构造方法:String(char[]);String(char[],int offset,int count)转换部分offset为起始位置,count为转换个数
静态方法:static String copyValueof(char[]);static String copyValueof(char[],int offset,int count);
static valueOf(char[])可以转换不同类型的数据;
3.2将字符串变成字符数组 char[] toCharArray();
3.3将字符串组转字节数组 byte[] getByte();
特殊:字符串和字节数组在转换的过程中,是可以制定编码表的
4.替换 String replace(old char,new char)
5.切割 String[] split(regex);
6.子串 String substring(begin);String substring(begin,end)包含头,不包含尾;
7.转换,去除空格,比较
7.1字符串转换为大写或小写String toUpperCase();String toLowerCase()
7.2去除两端空格String trim();
7.3两个字符串自然顺序比较int compareTo(String);
StringBuffer是线程同步的。
StringBuilder是线程不同步的。
JDK1.5之后出现StringBuilder
开发建议使用StringBuilder,效率更高
升级的三个因素:提高效率、简化书写、提高安全性
**基本数据类型转换成字符串
基本数据类型+""
基本数据类型.toString(基本数据类型值)
**字符串转换成基本数据类型
Integer.parseInt(String);
**十进制转换成其他进制
Integer.toBinaryString(int);Integer.toHexString(int);
**其他进制转换成十进制
Integer.parseInt("110",2); Integer.parseInt("3c",16); |
|