<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<String> list = </code><code>new</code> <code>ArrayList<String>();</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<Integer, String> map = </code><code>new</code> <code>HashMap<Integer, String>();</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<String, Object> map2 = </code><code>new</code> <code>HashMap<String, Object>();</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>"&"</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<String, String> join = Splitter.on(</code><code>"&"</code><code>).withKeyValueSeparator(</code><code>"="</code><code>).split(</code><code>"id=123&name=green&param1=HAN&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,如需轉載請自行聯系原作者