Powered by Google App Engine

Google guava-libraries

 

Joiner

Joinerについての検証です。apache commons-langに負けず劣らずなライブラリです。

新サイト、tree-mapsを公開しました!!

tree-maps: 地図のWEB TOOLの事ならtree-mapsにお任せ!

地図に関するWEB TOOL専門サイトです!!

大画面で大量の緯度経度を一気にプロット、ジオコーディング、DMS<->DEGの相互変換等ができます!

◯ 広告

commons-langのStringUtils.joinと同等以上の動作をします。

リスト・配列をセパレータで区切って連結文字列を生成します。

但し、nullには注意点がありますが、ちゃんと対策用メソッドがあります。後述で説明します。

空文字だけはどうしようもないですね。今後に期待。

List<String> list = Lists.newArrayList("aa", "bb", "cc");
System.out.println(Joiner.on(",").join(list));
=> aa,bb,cc

List<String> list = Lists.newArrayList("aa", "bb", "", "cc");
System.out.println(Joiner.on(",").join(list));
=> aa,bb,,cc

List<String> list = Lists.newArrayList("aa", "bb", null, "", "cc");
System.out.println(Joiner.on(",").join(list));
=> java.lang.NullPointerException

--------------------------------------------------------------------------

String[] array = { "aa", "bb", "cc" };
System.out.println(Joiner.on(",").join(list));
=> aa,bb,cc

String[] array = { "aa", "bb", "", "cc" };
System.out.println(Joiner.on(",").join(list));
=> aa,bb,,cc

String[] array = { "aa", "bb", null, "cc" };
System.out.println(Joiner.on(",").join(list));
=> java.lang.NullPointerException

リスト・配列をセパレータで区切って連結文字列を生成します。

nullをskipする機能があります空文字はそのままですね。今後に期待。

List<String> list = Lists.newArrayList("aa", "bb", null, "", "cc");
System.out.println(Joiner.on(",").skipNulls().join(list));
=> aa,bb,,cc

リスト・配列をセパレータで区切って連結文字列を生成します。

nullを別の文字に置換する事ができます空文字はそのままですね。今後に期待。

List<String> list = Lists.newArrayList("aa", "bb", null, "", "cc");
System.out.println(Joiner.on(",").useForNull("▲").join(list));
=> aa,bb,,▲,cc

mapをセパレータで区切って連結文字列を生成します。

引数をMapにする場合、MapJoinerと呼ばれるものに変わります。

そして、Mapの場合はwithKeyValueSeparatorでセパレータ設定する必要があります。

結果を見ると解りますが、TreeMapではないのですが、mapの第一引数で昇順ソートされるようです。

Map<Integer, String> map = Maps.newHashMap();
map.put(3, "pig");
map.put(2, "dog");
map.put(1, "cat");
System.out.println(Joiner.on(",").withKeyValueSeparator("=").join(map));
=> 1=cat,2=dog,3=pig

Map<Integer, String> map = Maps.newHashMap();
map.put(3, "pig");
map.put(2, null);
map.put(1, "cat");
System.out.println(Joiner.on(",").withKeyValueSeparator("=").join(map));
=> java.lang.NullPointerException

値にnullが混入した場合はskipNull()を使いたいところですが、java.lang.UnsupportedOperationException: can't use .skipNulls() with maps という例外がスローされます。

つまり、skipNull()できないので必ずヌルポってしまうのです。この点は今後に期待ですね。

treeおすすめの書籍です!
【送料無料】実践ハイパフォ-マンスMySQL第2版

【送料無料】実践ハイパフォ-マンスMySQL第2版
価格:4,830円(税込、送料別)

【送料無料】エキスパ-トのためのMySQL運用+管理トラブルシュ-ティングガイド

【送料無料】エキスパ-トのためのMySQL運用+管理トラブルシュ-ティングガイド
価格:3,465円(税込、送料別)

【送料無料】基礎からのMySQL改訂版

【送料無料】基礎からのMySQL改訂版
価格:3,129円(税込、送料別)

◯ 広告