JavaでStringクラスのconcatメソッド

連結を見る前に()は、まずその2つの文字列の特殊な性質の明確にする必要があります。

  • 長さ不変
  • 不変値 
    文字列ステートメントのこれら2点のソースコードから反射させることができます。
  private final char[] value ;
  • 1

前記特性に相当する不変の最終値、特性長さに対応する文字[]の文字列は不変です。

したがって、我々は文字列をスプライスするとき、それは新しい文字列を生成する必要があります。 
このために、我々は連結の解釈の源となり得る()と同じ結論に達しました。

@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 otherLen = str.length(); if (otherLen == 0) { return this; } 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方法将拼接字符串拼接到源字符串中,然后将新串返回。
  • 1

また、APIは、この方法が説明されます。

  • 文字列の長さのパラメータが0である場合は、このStringオブジェクトが返されます。
  • そうでない場合は、新しいStringオブジェクトの作成文字と文字列の文字列パラメータ文字列のStringオブジェクトのシーケンスは、このように一緒に接続表現表します。

要約すると、ときStringオブジェクトのステッチは、新しい文字列を格納するための新しい文字列を作成します。

おすすめ

転載: www.cnblogs.com/zhuyeshen/p/12132213.html