GuavaジョイナーとMapJoinerの使用法



Guava Joiner Mapjoiner Usage



guavaジョイナーは主に文字列のスプライシングに使用されます。従来、リストをスプライシングして独自のプログラミングをセパレーターでセグメント化する場合、おおよそのコードは次のとおりです。

public static String concatString(List lists,String delimiter){
StringBuilder builder = new StringBuilder()
for(String s : lists){
if(s!=null){
builder.append(s).append(delimiter)
}
}
builder.setLength(builder.length()-delimiter.length())
return builder.toString()
}


このコードは言うまでもなく、比較的単純です。ただし、これはリストコレクション専用であり、配列などの他のデータ構造の文字列連結にも使用できます。自分で実装するのはまだ少し面倒です。このため、guavaはスプライシングを担当するジョイナークラスを提供します。

たとえば、上記のコードは次のように書き直すことができます。
Joiner.on('|').join(lists)
センテンスコードが解決されます。
さらに、joinerには、nullをフィルタリングし、nullを文字列に置き換える2つの方法があります。

Joiner.on('|').useForNull('no').join(lists)
Joiner.on('|').skipNulls().join(lists)



MapJoinerの使用法はJoinerの使用法と似ていますが、MapJoinerは主にマップの文字列連結用です。

Map maps = Maps.newHashMap()
maps.put('id', '1')
maps.put('name', '2')
String ss= Joiner.on('&').withKeyValueSeparator('=').join(maps)