Joiner: java
List<String> stringList = new ArrayList<String>();app
stringList.add("aa");ui
stringList.add("bb");編碼
System.out.println(new JoinerTest().buildString(stringList, "/"));url
System.out.println(Joiner.on("|").skipNulls().join(stringList));spa
System.out.println(Joiner.on("|").useForNull("no value").join(stringList));code
System.out.println(Joiner.on("/").join("aa", "bb", ""));對象
// FileWriter fileWriter = new FileWriter(new File("/Users/zj/aa.txt"));ip
// Joiner joiner = Joiner.on("#").useForNull(" ");字符串
// //returns the FileWriter instance with the values
// //appended into it
// joiner.appendTo(fileWriter, stringList);
// fileWriter.flush();
// fileWriter.close();
Map<String,String> testMap = Maps.newLinkedHashMap();
testMap.put("Washington D.C","Redskins");
testMap.put("New York City","Giants");
testMap.put("Philadelphia","Eagles");
testMap.put("Dallas","Cowboys");
MapJoiner mapJoiner = Joiner.on("#").withKeyValueSeparator("=");
System.out.println(mapJoiner.join(testMap));
Splitter:
System.out.println(Splitter.on('|').trimResults().split("foo|bar ||baz "));
String startString = "Washington D.C=Redskins#New York" +
"City=Giants#Philadelphia=Eagles#Dallas=Cowboys";
Map<String,String> testMap = Maps.newLinkedHashMap();
testMap.put("Washington D.C","Redskins");
testMap.put("New York City","Giants");
testMap.put("Philadelphia","Eagles");
testMap.put("Dallas","Cowboys");
Splitter.MapSplitter mapSplitter = Splitter.on("#").withKeyValueSeparator("=");
Map<String,String> splitMap = mapSplitter.split(startString);
對於MapJoinner和MapSplitter的最好案例就是url的param編碼。
題目: 生產一個查詢id: 123,name: green的學生信息的url。
利用Guava的MapJoinner的代碼以下:
1
|
Joiner.on("&").withKeyValueSeparator("=").join(ImmutableMap.of("id", "123", "name", "green")); |
這裏採用了on傳入map item之間分隔符,以及withKeyValueSeparator傳遞map項key/value之間的分隔符。因此可以很簡單的實現,不用咱們在去實現一個的for循環代碼。
題目: 對url中的查詢字符串"id=123&name=green"進行分割
利用Guava的MapSplitter的代碼以下:
1
|
final Map<String, String> join = Splitter.on("&").withKeyValueSeparator("=").split("id=123&name=green"); |
這裏一樣利用on傳入字符串的第一分隔符,withKeyValueSeparator傳入項的分隔符,產生map的key/value項,其結果是一個{id=123, name=green}的Map對象。