guava--Joiner、Splitter、MapJoinner、MapSplitter


  Joiner: 

 List<String> stringList = new ArrayList<String>();

  stringList.add("aa");

  stringList.add("bb");

  System.out.println(new JoinerTest().buildString(stringList, "/"));

 

  System.out.println(Joiner.on("|").skipNulls().join(stringList));

  System.out.println(Joiner.on("|").useForNull("no value").join(stringList));

  System.out.println(Joiner.on("/").join("aa", "bb", ""));

 

  // FileWriter fileWriter = new FileWriter(new File("/Users/zj/aa.txt"));

  // 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

對於MapJoinner和MapSplitter的最好案例就是url的param編碼。

MapJoinner

題目:
生產一個查詢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循環代碼。

MapSplitter

題目:
對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對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM