1. String类
常用构造方法
-
String (String original)
- String (Char[] value)
- String (Char[] value, int offect, int count)
常用方法
-
public char charAt (int index)
-
public int indexOf (String str)
-
public int indexOf (String str, int fromIndex)
- public boolean equalsIgnoreCase (String another)
- public String replace (char oldChar, char newChar)
- public boolean startsWith (String prefix)
- public boolean endsWith (String suffix)
- public String toUpperCase ()
- public String toLowerCase ()
- public String substring (int beginIndex)
- public String subString (int beginIndex, int endIndex)
- public String trim ()
- public String[ ] split (String regex)
注意
判断两个字符串是否相等应该用“equals”方法,String的equals方法是判断两个字符串的内容是否相等,“==”是判断两个字符串对象的地址是否相等
public class TestString {
public static void main(String args[]) {
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
String s3 = "hello";
String s4 = "hello";
System.out.println(s3 == s4);
}
}
以上代码运行结果如下:
2. StringBuffer类
常用构造方法
-
StringBuffer ()
-
StringBuffer (String str)
常用方法
-
public StringBuffer append (String str)
-
public StringBuffer append (StringBuffer sbuf)
-
public StringBuffer append (char[ ] str)
-
public StringBuffer append (char[ ] str, int offset, int len)
-
public StringBuffer append (double d)
-
public StringBuffer append (Object obj)
-
......
- public StringBuffer insert (int offset, String str)
- public StringBuffer insert (int offset, double d)
- ......
- public StringBuffer delete (int start, int end)
- public StringBuffer reverse (int start, int end)
- 其他方法同String类似,如subString,indexOf等
3. StringBuilder类
用法同StringBuffer类似
4. 三者区别
1. String长度为不可变的字符序列,StringBuffer和StringBuilder为长度可变的字符序列。String在进行字符串处理时会生成新的对象,之前的对象就会被变为无用的对象而被垃圾回收器回收。而StringBuffer和StringBuilder在进行字符串处理时是在原对象的基础上进行的修改,不会生成新的对象,因此效率要优于String。
2. StringBuffer和StringBuilder的原理和操作基本相同,区别在于StringBuffer是线性安全的,适合多线程中使用。而StringBuilder是非线性安全的,不能在多线程中使用。但在单线程中StringBuilder性能要优于StringBuffer。