String類、StringBuffer類、StringBuilder類詳解

一、String類:字符串類,繼承Object對象實現了序列化、比較器和sequence(順序)接口。
1、字符串底層的數據結構爲字符數組。字符串文本即爲字符串類的一個對象,它是一個常量。

String abc="abc";
//等價如下代碼
char data[] = {'a','b','c'};
String abc2 = new String(data);

2、String類中提供了幾乎所有對字符串的操作,包括檢索字符串、比較字符串、搜索字符串、提取子字符串和創建字符串的副本,以及將所有字符轉換爲大寫或小寫的字符串等。具體使用方法請閱讀官方API文檔.
3、字符串的連接可以通過操作符“+”、StringBuilder(或StringBuffer)類提供的方法實現。字符串轉換是通過方法toString實現。

//連接字符串
String str1="abc";
String str2="-def";
//方式一:
String str=str1+Str2;  //結果爲:"abc-def"
//方式二:(效率低)
StringBuffer sb=new StringBuffer();
String str=sb.append(str1).append(str2).toString();//結果爲:"abc-def"
//方式三:(效率高)
StringBuilder sb new StringBuilder();
String str=sb.append(str1).append(str2).toString();//結果爲:"abc-def"

這裏寫圖片描述

二、StringBuffer類:字符串緩衝池類,繼承Object類,實現了序列化、追加器, 字符排序接口。
1、StringBuffer是線程安全、同步的、效率低,是一個可變的字符序列且內容可以被修改。可以指定其容量的大小,默認容量不足時則可以自動增加容量。
2、StringBuffer的主要操作是append和insert方法,可以接受任何類型的數據,append方法總是在緩衝區的末尾添加字符;插入在指定的點添加字符。

StringBuffer sb=new StringBuffer( "start");
sb.append("el");  //結果爲:startel

StringBuffer sb2=new StringBuffer( "start");
sb2.insert(4,"el"); //結果爲:starelt

這裏寫圖片描述

三、StringBuilder類:繼承Object類實現了序列化、字符排序接口。
1、StringBuilder字符生成器,提供了與StringBuffer兼容的API,是線程不安全且不同步的,但效率高,適用單一線程操作。可以指定其容量的大小,默認容量不足時則可以自動增加容量。
2、StringBuilder的主要操作是append和insert方法,可以接受任何類型的數據。StringBuilder的主要操作是append和insert方法,append方法總是在構建器的末尾添加這些字符;插入方法在指定的點添加字符。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章