最後に、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 サイトの他の関連記事を参照してください。