文字列のつづりはまだString、StringBuilderを使っていますか?StringJoinerを試してみましょう
StringJoinerはJDK 1です.8新しいクラスで、文字列をつなぎ合わせるときにセパレータ、接頭辞、接尾辞を追加します.これらのビジネスに関係のない記号を手動でつなぐ必要はなく、境界問題を処理する手間も省けます.
使用方法の説明
例:配列内の要素を「,」で分割された文字列に結合
StringJoinerを使用する前に
StringJoinerを使用した後
StringJoinerの紹介
StringJoinerには2つの構造方法があります.
delimiterを区切り文字とするStringJoinerを構築するパラメータの構築方法です.スペル文字列ごとにdelimiter区切り文字が自動的に追加されます.
delimiterを区切りとするStringJoinerを構築し、最終結果文字列にprefix接頭辞とsuffix接尾辞を接合する3つのパラメータの構築方法.
addメソッド
最終的には呼び出したStringBuilderのappendメソッド
使用方法の説明
例:配列内の要素を「,」で分割された文字列に結合
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;
}