看一些測試用例: java
String delimiter = ","; // Joiner類一旦建立則不可變,知足不可變性,所以線程安全 Joiner joiner = Joiner.on(delimiter); // 忽略null String excludeNullString = joiner.skipNulls().join(langs); // 將null替代爲empty字符串 String replaceNullString = joiner.useForNull("empty").join(langs); System.out.println("excludeNullString: " + excludeNullString); System.out.println("replaceNullString: " + replaceNullString); // 不對null處理,默認會拋NullPointerException String defaultNullString = joiner.join(langs); //langs爲List<String> System.out.println("defaultNullString: " + defaultNullString);
String delimiter = ","; // Joiner類一旦建立則不可變,知足不可變性,所以線程安全 Joiner joiner = Joiner.on(delimiter).skipNulls(); //joiner.useForNull("empty"); //重複定義null操做會拋異常 String res = joiner.join(null, "foo","bar"); System.out.println(res); //foo,bar
//append到StringBuilder StringBuilder stringBuilder = new StringBuilder(); Joiner joiner = Joiner.on(",").skipNulls(); joiner.appendTo(stringBuilder, "appendTo", "StringBuilder"); System.out.println(stringBuilder); //appendTo,StringBuilder //append到輸出流 FileWriter writer = new FileWriter("append_text.txt"); joiner.appendTo(writer, "appendTo", "FileWriter"); writer.close();
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("="); String str = mapJoiner.join(map); System.out.println(str);//結果如:key3=value3,key2=value2,key1=value1
String str = "try ,do , your , best"; Splitter splitter = Splitter.on(",").trimResults(); //用逗號分割且去掉每一個字符串周圍的空格 //splitter.trimResults(); //這樣是不會去掉各個元素空格的, 它僅返回一個新的Splitter Iterable<String> res = splitter.split(str); System.out.println(res); //[try, do, your, best]
String str = "key3=value3,key2=value2,key1=value1"; MapSplitter splitter = Splitter.on(",").withKeyValueSeparator("="); Map<String, String> map = splitter.split(str); System.out.println(map);// {key3=value3, key2=value2, key1=value1}
//用padChar填充string後面, 使string最小長度爲minLength padEnd(String string, int minLength, char padChar) //用padChar填充string前面, 使string最小長度爲minLength padStart(String string, int minLength, char padChar) //null轉換爲"" nullToEmpty(String string) //""轉換爲null emptyToNull(String string) //true, 若是字符串爲null或者"" isNullOrEmpty(Strng string)
String tabsAndSpaces = "String with spaces and tabs"; //將多個連續的空格替換爲一個 String scrubbed = CharMatcher.WHITESPACE.collapseFrom(tabsAndSpaces,' '); System.out.println(scrubbed); //String with spaces and tabs
String tabsAndSpaces = " String with spaces and tabs"; String scrubbed = CharMatcher.WHITESPACE.trimAndCollapseFrom(tabsAndSpaces, ' '); System.out.println(scrubbed); //String with spaces and tabs
String lettersAndNumbers = "foo989yxbar234"; String retained = CharMatcher.JAVA_DIGIT.retainFrom(lettersAndNumbers); //保留數字 System.out.println(retained); //989234
CharMatcher cm = CharMatcher.JAVA_DIGIT.or(CharMatcher.WHITESPACE); String retained = cm.retainFrom("foo9 89y xbar 234");//保留數字和空格 System.out.println(retained); //9 89 234
checkNotNull(obj, "檢查對象不能爲空"); checkElementIndex(index, arr.length,"檢查數組索引"); checkArgument(valueToSet <= 100, "檢查參數值"); checkState(validateObjectState(), "檢查對象狀態");
public class Book implements Comparable<Book> { private Person author; private String title; private String publisher; private String isbn; private double price; ... @Override public int compareTo(Book o) { return ComparisonChain.start() //鏈式比較,在第一個非0處返回 .compare(this.title, o.getTitle()) .compare(this.author, o.getAuthor()) .compare(this.publisher, o.getPublisher()) .compare(this.isbn, o.getIsbn()) .compare(this.price, o.getPrice()) .result(); } @Override public int hashCode(){ return Objects.hashCode(title, author, publisher, isbn);//hashCode生成 } @Override public String toString() { return Objects.toStringHelper(this) //toString .omitNullValues() //忽略null屬性 .add("title", title) .add("author", author) .add("publisher", publisher) .add("price",price) .add("isbn", isbn).toString(); } }
String str = null; str = Objects.firstNonNull(str, "defaut value"); System.out.println(str);
以上就是基本工具使用。 數組
不吝指正。 安全