import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import java.util.*;
/**
* Created by sksocool on 15-4-16.
*/
public class GuavaHigh
{
public static void main(String[] args)
{
String[] stringArray = {"one", "two", "three", "four", "five"};
Joiner joiner = Joiner.on("-").skipNulls(); // Joiner对象和String对象一样,不可变!
System.out.println(joiner.join(stringArray));
// one-two-three-four-five
List<String> stringList = new ArrayList<String>(Arrays.asList("ONE", "TWO", "THREE", "FOUR", null, "FIVE"));
System.out.println(joiner.join(stringList));
// ONE-TWO-THREE-FOUR-FIVE
//region 注意区分join和appendTo的不同之处~
StringBuilder stringBuilder = new StringBuilder();
System.out.println(joiner.join(stringBuilder, "FOUR", "SEVEN", null));
// -FOUR-SEVEN
StringBuilder stringBuilderX = new StringBuilder();
System.out.println(joiner.appendTo(stringBuilderX, "FOUR", "SEVEN"));
// FOUR-SEVEN
//endregion
joiner = Joiner.on("+").useForNull("***");
System.out.println(joiner.join(stringList));
// ONE+TWO+THREE+FOUR+***+FIVE
stringBuilder.append("JAVA");
System.out.println(joiner.join(stringBuilder, "FOUR", "SEVEN", null));
// JAVA+FOUR+SEVEN+***
HashMap<String, String> hashMap = new LinkedHashMap<String, String>()
{
{
put("ALWAYS", "always");
put("MISSING", "missing");
put("HARRY", "harry");
put("POTTER", "potter");
}
};
Joiner.MapJoiner mapJoiner = Joiner.on("__").withKeyValueSeparator("&");
System.out.println(mapJoiner.join(hashMap));
// ALWAYS&always__MISSING&missing__HARRY&harry__POTTER&potter
Splitter splitter = Splitter.on("-");
String toSplit = "always-missing-harry-potter- ";
Iterable<String> splitResult = splitter.split(toSplit);
Iterator iterator = splitResult.iterator();
String x;
while (iterator.hasNext())
{
x = (String) iterator.next();
System.out.printf(x + ".");
}
// always.missing.harry.potter. .
System.out.println();
splitter = Splitter.on("-").trimResults(); // 清除掉开头或末尾的空白符
splitResult = splitter.split(toSplit);
iterator = splitResult.iterator();
while (iterator.hasNext())
{
System.out.printf(iterator.next() + ".");
}
// always.missing.harry.potter..
System.out.println();
String toSplitMap = "one&ONE-two&TWO-three&THREE";
Splitter.MapSplitter mapSplitter = Splitter.on("-").withKeyValueSeparator("&");
Map<String, String> splitMapResult = mapSplitter.split(toSplitMap);
Iterator<Map.Entry<String, String>> iteratorX = splitMapResult.entrySet().iterator();
while (iteratorX.hasNext())
{
Map.Entry<String, String> tempMap = iteratorX.next();
System.out.printf(tempMap.getKey() + ": " + tempMap.getValue() + " ");
}
// one: ONE two: TWO three: THREE
}
}