1、两种创建方式
1 String str1 = "abc"; //字面量创建 2 String str2 = new String("abc"); //构造方法创建
使用字面量创建时只会生成一个对象,而通过构造方法创建时会生成两个对象(前面的str2和后面的new String对象)
2、常见的构造方法
1 public String() //空参构造 2 public String(byte[] bytes) //把字节数组转换成字符串 3 public String(byte[] bytes,int index,int length) //把字节数组的一部分转换成字符串 4 public String(char[] value) //把字符数组转换成字符串 5 public String(char[] value,int index,int count) //把字符数组的一部分转换成字符串
3、其它常用方法
1 int length() //返回字符串长度 2 3 String substring(int beginIndex,int endIndex) //获取字符串的一部分 4 //beginIndex 开始位置下标 endIndex 结束位置下标+1 5 String substring(int beginIndex) //获取字符串的一部分 6 //beginIndex 开始位置下标 一直到最后 7 boolean startsWith(String prefix) //判断一个字符串的开头、前缀是不是prefix 8 9 boolean endsWith(String prefix) //判断一个字符串的结尾、后缀是不是prefix 10 11 boolean contains(String s) //判断一个字符串是否包含s 12 13 int indexOf(char ch) //查找一个字符,返回在字符串中第一次出现的索引,如果没找到,则返回-1 14 15 byte[] getBytes() //将字符串转换成字节数组 16 17 char[] toCharArray() //将字符串转换成字符数组 18 19 boolean equals(Object obj) //判断字符串中的字符是否完全相同,完全相同返回true,区分大小写 20 21 boolean equalsIgnoreCase(String s) //同上,忽略大小写 22 23 toUpperCase() //转大写 24 25 toLowerCase() //转小写
4、String、StringBuffer、StringBuilder
4.1、String是不可变的字符序列,在定义时长度就确定了。StringBuffer与StringBuilder是可变的字符序列,长度默认为16位,定义时不足16位的位置为空,后续可以在填充,实现长度可变。
4.2、StringBuffer是jdk1.0版本的,线程安全、效率低,StringBuilder是jdk1.5版本的,线程不安全、效率高