文字列のつづりはまだString、StringBuilderを使っていますか?StringJoinerを試してみましょう


StringJoinerはJDK 1です.8新しいクラスで、文字列をつなぎ合わせるときにセパレータ、接頭辞、接尾辞を追加します.これらのビジネスに関係のない記号を手動でつなぐ必要はなく、境界問題を処理する手間も省けます.
使用方法の説明
例:配列内の要素を「,」で分割された文字列に結合
String[] strings = new String[]{"a", "b", "c"};

    :a,b,c

StringJoinerを使用する前に
    public static void main(String[] args) {
        String[] strings = new String[]{"a", "b", "c"};

        StringBuilder sb = new StringBuilder();
        for (String s : strings) {
            //            ","
            sb.append(s).append(",");
        }
        //                ","  
        String substring = sb.substring(0, sb.length() - 1);

        System.out.println(substring);
    }

StringJoinerを使用した後
    public static void main(String[] args) {
        String[] strings = new String[]{"a", "b", "c"};

        //           ","              
        StringJoiner sj = new StringJoiner(",");
        for (String s : strings) {
            //        ,            
            sj.add(s);
        }

        System.out.println(sj);
    }

StringJoinerの紹介
StringJoinerには2つの構造方法があります.
delimiterを区切り文字とするStringJoinerを構築するパラメータの構築方法です.スペル文字列ごとにdelimiter区切り文字が自動的に追加されます.
    public StringJoiner(CharSequence delimiter) {
        this(delimiter, "", "");
    }

delimiterを区切りとするStringJoinerを構築し、最終結果文字列にprefix接頭辞とsuffix接尾辞を接合する3つのパラメータの構築方法.
    public StringJoiner(CharSequence delimiter,
                        CharSequence prefix,
                        CharSequence suffix) {
        Objects.requireNonNull(prefix, "The prefix must not be null");
        Objects.requireNonNull(delimiter, "The delimiter must not be null");
        Objects.requireNonNull(suffix, "The suffix must not be null");
        // make defensive copies of arguments
        this.prefix = prefix.toString();
        this.delimiter = delimiter.toString();
        this.suffix = suffix.toString();
        this.emptyValue = this.prefix + this.suffix;
    }

addメソッド
    public StringJoiner add(CharSequence newElement) {
        prepareBuilder().append(newElement);
        return this;
    }
    private StringBuilder prepareBuilder() {
        if (value != null) {
            value.append(delimiter);
        } else {
            value = new StringBuilder().append(prefix);
        }
        return value;
    }

最終的には呼び出したStringBuilderのappendメソッド
    public StringBuilder append(CharSequence s) {
        super.append(s);
        return this;
    }