在了解concat()之前,首先需要明確的是string的兩點特殊性。
private final char value ;
其中final對應值的不可更改的特性;而char對應string是長度不可更改的特性。
因此,當我們對string進行拼接後,產生的應該是乙個新的字串。
對於這一點,我們可以對concat()進行原始碼的解讀得出同樣的結論。
@param str 需要拼接到原字串的新串
@param otherlen 新串的長度
@param len 原字串的長度
@param buf 存放最終字串的字元陣列(長度為len+otherlen)
@method copyof(char original, int newlength)
複製指定的陣列,擷取或用 null 字元填充(如有必要),以使副本具有指定的長度。
@method getchars(int srcbegin, int srcend, char dst, int dstbegin)
將字元從此字串複製到目標字元陣列。
public string concat(string str)
int len = value.length;
char buf = arrays.copyof(value, len + otherlen);
str.getchars(buf, len);
return
new string(buf, true);
}
concat()方法首先獲取拼接字串的長度,判斷這個字串長度是否為0(判斷這個用來拼接的字串是不是空串),如果是就返回原來的字串(等於沒有拼接);否則就獲取源字串的長度,建立乙個新的char字元陣列,這個字元陣列的長度是拼接字串的長度與源字串的長度之和,通過arrays類的copyof方法複製源陣列,然後通過getchars方法將拼接字串拼接到源字串中,然後將新串返回。
api中也對這個方法進行了解釋:
綜上,當對string物件進行拼接時,會建立乙個新的字串來儲存新串。 JAVA中String類的總結
類在 的使用中有著非常重要的作用,現在對於 類做乙個總結 提到 類就不得不提到 類,有兩種型別的字串,一種是建立後不需要改變的,稱為字串常量,類用於儲存字串常量。另一種是建立後需要對其進行改變的,稱為字串變數,用於儲存字串變數。先來看看 類 類有 種構造方法,都是根據提供的不同引數來構造。下面舉幾個...
Java中的String類 二
2 string的常用操作方法 2.1 字元與字串 在string類中提供了以下的方法操作字元與字串間的轉換關係 根據字串中提供的索引找到指定位置的字元 public char charat int index 將字串變為字元陣列 public char tochararray 將字元陣列變為字串 ...
Java中的String類的認識
一般將字串如 abc 直接稱為string物件其實它是string物件的一部分 字元陣列屬性的值 string類的例項化 1 string a abc 在常量池中用一塊字元陣列放乙個字串 abc a變數存該字串的引用!2 string a new string abc 在常量池中用一塊字元陣列放乙個...