天天看点

Joiner的简单了解

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>

<code>        </code> 

<code>        </code><code>System.out.println(</code><code>"---------------- "</code><code>);</code>

<code>        </code><code>/**</code>

<code>         </code><code>* Google Guava提供了Joiner类专门用来连接String。</code>

<code>         </code><code>* 譬如说有个String数组,里面有"a","b","c",</code>

<code>         </code><code>* 我们可以通过使用StringBuilder来创建String "a,b,c"。</code>

<code>         </code><code>*/</code>

<code>        </code><code>Joiner joiner = Joiner.on(</code><code>";"</code><code>);</code>

<code>        </code><code>String str1 = joiner.join(</code><code>new</code> <code>String[]{</code><code>"a"</code><code>,</code><code>"b"</code><code>,</code><code>"c"</code><code>});</code>

<code>        </code><code>System.out.println(</code><code>" str1 : "</code> <code>+ str1);</code>

<code>         </code><code>* 当然Joiner.join还提供了参数为Iterable的overload形式。也就是说你可以传各种List和Set。</code>

<code>         </code><code>* 如果被连接String里面要过滤null,可以这样</code>

<code>        </code><code>Joiner joiner2 = Joiner.on(</code><code>";"</code><code>).skipNulls(); </code><code>//过滤null</code>

<code>        </code><code>String str2 = joiner2.join(</code><code>new</code> <code>String[]{</code><code>"a"</code><code>,</code><code>"b"</code><code>,</code><code>null</code><code>,</code><code>"c"</code><code>});</code>

<code>        </code><code>List&lt;String&gt; list = </code><code>new</code> <code>ArrayList&lt;String&gt;();</code>

<code>        </code><code>list.add(</code><code>"1"</code><code>);</code>

<code>        </code><code>list.add(</code><code>"2"</code><code>);</code>

<code>        </code><code>list.add(</code><code>null</code><code>);</code>

<code>        </code><code>list.add(</code><code>"3"</code><code>);</code>

<code>        </code><code>String str21 = joiner2.join(list);</code>

<code>        </code><code>System.out.println(</code><code>" str2 : "</code> <code>+ str2);</code>

<code>        </code><code>System.out.println(</code><code>" str21 : "</code> <code>+ str21);</code>

<code>         </code><code>* 如果对null进行替换操作</code>

<code>        </code><code>Joiner joiner3 = Joiner.on(</code><code>";"</code><code>).useForNull(</code><code>"!"</code><code>);</code>

<code>        </code><code>String str3 = joiner3.join(</code><code>new</code> <code>String[]{</code><code>"a"</code><code>,</code><code>"b"</code><code>,</code><code>null</code><code>,</code><code>"c"</code><code>});</code>

<code>        </code><code>System.out.println(</code><code>" str3 : "</code> <code>+ str3);</code>

<code>         </code><code>* Joiner还提供了appendTo函数,对传入的StringBuider作处理</code>

<code>        </code><code>Joiner joiner4 = Joiner.on(</code><code>";"</code><code>);</code>

<code>        </code><code>StringBuilder ab = </code><code>new</code> <code>StringBuilder(</code><code>"start : "</code><code>);</code>

<code>        </code><code>StringBuilder str4 = joiner4.appendTo(ab, </code><code>new</code> <code>String[]{</code><code>"a"</code><code>,</code><code>"b"</code><code>,</code><code>"c"</code><code>});</code>

<code>        </code><code>System.out.println(</code><code>" str4 : "</code> <code>+ str4.toString());</code>

<code>         </code><code>* MapJoiner类也利用了Joiner提供的Map的join功能</code>

<code>        </code><code>Map&lt;Integer, String&gt; map = </code><code>new</code> <code>HashMap&lt;Integer, String&gt;();</code>

<code>        </code><code>map.put(</code><code>1</code><code>, </code><code>"a"</code><code>);</code>

<code>        </code><code>map.put(</code><code>2</code><code>, </code><code>"b"</code><code>);</code>

<code>        </code><code>MapJoiner joiner5 = Joiner.on(</code><code>";"</code><code>).withKeyValueSeparator(</code><code>"→"</code><code>);</code>

<code>        </code><code>String str5 = joiner5.join(map);</code>

<code>        </code><code>System.out.println(</code><code>" str5 : "</code> <code>+ str5);</code>

<code>        </code><code>//url拼接</code>

<code>        </code><code>Map&lt;String, Object&gt; map2 = </code><code>new</code> <code>HashMap&lt;String, Object&gt;();</code>

<code>        </code><code>map2.put(</code><code>"param1"</code><code>, </code><code>"HAN"</code><code>);</code>

<code>        </code><code>map2.put(</code><code>"param2"</code><code>, </code><code>2</code><code>);</code>

<code>        </code><code>MapJoiner joiner6 = Joiner.on(</code><code>"&amp;"</code><code>).withKeyValueSeparator(</code><code>"="</code><code>);</code>

<code>        </code><code>String str6 = joiner6.join(map2);</code>

<code>        </code><code>System.out.println(</code><code>" str6 : "</code> <code>+ str6);</code>

<code>        </code><code>String str7 = joiner6.join(ImmutableMap.of(</code><code>"id"</code><code>,</code><code>"123"</code><code>,</code><code>"name"</code><code>,</code><code>"green"</code><code>));</code>

<code>        </code><code>System.out.println(</code><code>" str7 : "</code> <code>+ str7);</code>

<code>        </code><code>//分割</code>

<code>        </code><code>final</code> <code>Map&lt;String, String&gt; join = Splitter.on(</code><code>"&amp;"</code><code>).withKeyValueSeparator(</code><code>"="</code><code>).split(</code><code>"id=123&amp;name=green&amp;param1=HAN&amp;param2=2"</code><code>);</code>

<code>        </code><code>System.out.println(</code><code>" map :"</code> <code>+ join.toString());</code>

<code>    </code><code>}</code>

     本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/1931272,如需转载请自行联系原作者