String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换成一个String对象。
StringBuilder类,它也代表字符串对象。实际上,StringBuffer和StringBuilder基本相似,两个类的构造器和方法也基本相同。不同的是,StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先考虑使用StringBuilder类。
三者的执行速度方法:StringBuilder>StringBuffer>String
常用方法:
1. StringBuffer append(char c)
2. StringBuffer delete(int start, int end)
3. StringBuffer deleteCharAt(int index)
4. StringBuffer insert(int offset, char c)
5. StringBuffer replace(int start, int end, String str)
6. StringBuffer reverse()
7. void setCharAt(int index, char ch)
StringBuffer sb=new StringBuffer();
sb.append("world!");//world!
sb.delete(5, 6);//world
sb.deleteCharAt(3);//word
sb.replace(0, 4, "java");//java
sb.insert(0, "hello,");//hello,java
sb.reverse();//avaj,olleh