String与StringBuffer与StringBuilder之间的差异

1、相同点:String、StringBuffer、StringBuilder三个类都是用来封装字符串的
2、不同点:
  • String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符串是不可以改变的
  • StringBuffer对象代表一个字符序列可变的字符串
  • StringBuilder也代表一个可变字符串对象,与StringBuffer相比,StringBuilder是线程不安全的,而StringBuffer是线程安全的
3、方法:
(1)String类中主要的方法:
  • char charAt(int index):获取字符串中indext位置的字符

  • String concat(String str):将该String对象与str连接在一起

  • String substring(int beginIndex):获取从beginIndex位置开始到结束的子字符串

  • String substring(int beginIndex,int endIndex):获取从beginIndex位置到endIndex位置的字符串

  • char[] toCharArray():将String对象转换成char数组

  • String toLowerCase():将字符串全部变为小写

  • String toUpperCase():将字符串全部变为大写

(2)StringBuffer、StringBuilder中的主要方法:
  • append():添加字符序列
  • insert():插入字符串
  • replace():替换字符串
  • delete():删除字符
  • reverse():反转字符串
  • seLength():修改字符序列长度
  • capacity():获取StringBuffer、StringBuilder对象的容量
public class ScannerTest {
	public static void main(String[] args){
		StringBuffer sb=new StringBuffer();
		//添加
		sb.append("hello");
		System.out.println(sb);
		//插入
		sb.insert(0, "China ");
		System.out.println(sb);
		//替换
		sb.replace(5, 6, ",");
		System.out.println(sb);
		//删除
		sb.delete(5, 6);
		System.out.println(sb);
		//反转
		sb.reverse();
		System.out.println(sb);
		System.out.println(sb.length());
		System.out.println(sb.capacity());
		//修改长度,只保留长度之前的数值
		sb.setLength(5);
		System.out.println(sb);
	}
}
/*输出结果:
hello
China hello
China,hello
Chinahello
ollehanihC
10
16
olleh
*/

(3)一旦StringBuffer、StringBuilder生成了最后想要的字符串,就可以调用它的toString()方法将其变为一个String对象

在上述代码后加入这两句,将sb转换为str,这个str无法改变。

String str=sb.toString();
System.out.println(str);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章