base.Joiner
文字列を結合します。イテラブルから、カンマ区切りだったり、行区切りの文字列を簡単に作成できます。マップにも対応
staticメソッド
返り値 static Joiner
結合部分の文字を指定して、Joinerを作成します。
- on(char separator) - 結合部分のchar
例.','
- on(String separator) - 結合部分の文字列
例."\r\n"
メソッド
<A extends Appendable>
返り値 A
Appendableに追加。Appendableは、IOExceptionをキャッチする必要があります。
- appendTo(A appendable, Iterable<?> parts) - イテラブルを結合して追加
- appendTo(A appendable, Object[] parts) - 配列を結合して追加
- appendTo(A appendable, Object first, Object second, Object... rest) - 引数を結合して追加
返り値 StringBuilder
StringBuilderに追加します。StringBuilderは文字列を合わせるのに効率的です。
- appendTo(StringBuilder builder, Iterable<?> parts) - イテラブルを結合して追加
- appendTo(StringBuilder builder, Object[] parts) - 配列を結合して追加
- appendTo(StringBuilder builder, Object first, Object second, Object... rest) - 引数を結合して追加
返り値 String
結合した文字列を返します。
- join(Iterable<?> parts) - イテラブルを結合
- join(Object[] parts) - 配列を結合
- join(Object first, Object second, Object... rest) - 引数を結合
返り値 Joiner
- skipNulls() - nullをスキップ(しない場合、nullがあると
NullPointerException
が発生 - useForNull(String nullText) - Nullに置き換える文字を指定
- withKeyValueSeparator(String keyValueSeparator) - キーと値の結合文字を指定して、MapJoinerを返す。
注意事項
Immutable 一度、インスタンスを生成したら、あとでskipnullとかしても無駄。2回読んだりするとエラー出る。あとで設定を変更しないこと
//無駄
Joiner joiner=Joiner.on(",");
joiner.skipNulls();
//動くけど間違い。再度joinerでuseForNullとか呼ぶとエラー出る。
Joiner joiner=Joiner.on(",");
joiner=joiner.skipNulls();
コード見ると、既存のJoinerを引数に新しいJoinerを作成している。
public Joiner skipNulls() {
return new Joiner(this) {
..
内部クラス MapJoiner
マップを結合するためのJoiner
Joinerから、withKeyValueSeparator
で作られる。なぜか、SkipNulls
がない。
キーか値にnullが含まれている場合は、useForNull指定されていないとエラー出る。