ホームページ  >  記事  >  Java  >  Java8 StringJoinerの詳細コード説明

Java8 StringJoinerの詳細コード説明

黄舟
黄舟オリジナル
2017-03-24 11:02:091782ブラウズ

最後に、Java 8 は java.util パッケージの下で StringJoiner クラスをリリースします。これは、StringBuffer/StringBuilder を使用して strings を連結するという昔ながらのアプローチと根本的に異なる実装ではないと思います。 StringJoiner の使用法とその内部実装を見てみましょう。

たとえば、「Smart」と「Techie」という 2 つの文字列があり、これらの文字列を [Smart, Techie] として連結したいとします。この場合、接頭辞は「[」、接尾辞は「]」、区切り文字は「,」です。 StringJoiner には次の 2 つのコンストラクターがあります。

StringJoiner(CharSequence delimiter)
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)

接頭辞と接尾辞が必要なので、例の 2 番目のコンストラクターを使用します。

StringJoiner sjr = new StringJoiner(",", "[", "]");
sjr.add("Smart").add("Techie");
System.out.println("The final Joined string is " + sjr);

プレフィックスとサフィックスを使用したくない場合は、次のようにします。

sjr1.add("Smart").add("Techie");
System.out.println("The final Joined string is " + sjr1);

次に、add メソッドと toString() メソッドの実装を見ていきます。

public StringJoiner add(CharSequence newElement) {
   prepareBuilder().append(newElement);
   return this;
}

prepareBuilder()は次のように実装されます。

private StringBuilder prepareBuilder() {
    if (value != null) {
       value.append(delimiter);
    } else {
       value = new StringBuilder().append(prefix);
    }
    return value;
}

上記の実装から、StringJoiner が昔ながらのアプローチに従っていることは明らかです。

toString()は次のように実装されます。

りー

以上がJava8 StringJoinerの詳細コード説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。