字符串處理工具Guava使用總結java
在java開發過程當中對字符串的處理是很是頻繁的,google的guava工具對字符串的一些處理進行優化,使咱們開發過程當中讓本身的代碼看去更加美觀,清爽。app
1:maven依賴:maven
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency>
根據給定的分隔符把字符串鏈接到一塊兒函數
public class JoinerTest { public static void main(String args[]){ //一、將list字符串集合,以,形式轉爲字符串 List<String> list =new ArrayList<String>(); list.add("xx"); list.add("zz"); list.add("dd"); //Joiner.on(",")得到Joiner實例對象 Joiner joiner = Joiner.on(","); //joiner.join(list)傳入操做的集合,並轉成字符串格式 System.out.println(joiner.join(list)); //輸出結果:xx,zz,dd //二、將Iterator<T>列表,轉爲字符串 Iterator<String> it=list.iterator(); String str=Joiner.on("|").join(it); System.out.println(str); //輸出結果:xx|zz|dd //三、鏈接多個字符串 String str1=Joiner.on(",").join("小小","爸爸","媽媽","爺爺","奶奶"); System.out.println(str1); //輸出:小小,爸爸,媽媽,爺爺,奶奶 //四、鏈接字符串與列表 StringBuilder builder=new StringBuilder("小小最乖"); //返回StringBuilder類型 StringBuilder str2=Joiner.on(",").appendTo(builder,list); System.out.println(str2); //輸出:小小最乖xx,zz,dd //五、跳過null值鏈接 list.add(null); list.add("小小"); //skipNulls()表明去除null String str3=Joiner.on(",").skipNulls().join(list); System.out.println(str3); //輸出:xx,zz,dd,小小 //六、替換null值進行鏈接 String str4=Joiner.on(",").useForNull("空").join(list); System.out.println(str4); //輸出:xx,zz,dd,空,小小 //七、Map的鍵值對打印出來 Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("="); System.out.println(mapJoiner.join(map)); //輸出:key1=value1,key2=value2,key3=value3 //八、一步將字符串轉爲List<Long>集合(前面先轉爲list<String>,後面用java8特性將List<String>轉爲List<Long>) List<Long> list=Splitter.on("#").splitToList("111#222#333").stream().mapToLong(str->Long.parseLong(str)).boxed().distinct().collect(Collectors.toList());
九、一步將字符串轉爲List<Integer>集合
List<Integer> list=Splitter.on(",").splitToList("111#222#333").stream()
.mapToInt(str->Integer.valueOf(str)).boxed().distinct().collect(Collectors.toList());
} }
主要功能是拆分字符串爲集合 Map等。 經過分析源碼可知,該工具類是經過on函數傳入拆分字符獲得實例。工具
public class SplitterTest { public static void main(String args[]){ //一、拆分字符串爲List集合 String str="小小,媽媽,爸爸,爺爺,奶奶"; Splitter splitter =Splitter.on(","); List<String> list=splitter.splitToList(str); System.out.println(list); //輸出:[小小, 媽媽, 爸爸, 爺爺, 奶奶] //二、忽略空字符 String str1="a,b,c,d,,f,g"; //omitEmptyStrings()表明去除空字符串 List<String> list1=Splitter.on(",").omitEmptyStrings().splitToList(str1); System.out.println(list1); //輸出:[a, b, c, d, f, g] //三、忽略空字符且去除字符串先後空格 String str2="a,b,c,d,,f, g "; List<String> list2=Splitter.on(",").omitEmptyStrings().trimResults().splitToList(str2); System.out.println(list2); //輸出:[a, b, c, d, f, g] } }
集合分隔:優化
List<List<String>> ids= Lists.partition(list, 100);
public class StringsTest { public static void main(String args[]){ //一、補右全(Strings.padEnd方法) String a="12345"; String b=Strings.padEnd(a, 10, 'x'); System.out.println(b); //輸出:12345xxxxx //二、補左全(Strings.padStart) String c=Strings.padStart(a, 10, 'x'); System.out.println(c); //輸出:xxxxx12345 //三、校驗空值和null String d=""; String f=null; boolean e=Strings.isNullOrEmpty(d); boolean h=Strings.isNullOrEmpty(f); System.out.println(e); System.out.println(h); //輸出:true,true //四、若是爲null 轉爲"" String m=null; String n=Strings.nullToEmpty(m); System.out.println(n); //輸出: //五、若是爲"" 轉爲null String j=""; String k=Strings.emptyToNull(j); System.out.println(k); //輸出:null //六、重複字符串(Strings.repeat) String o="123"; String p=Strings.repeat(o, 3); System.out.println(p); //輸出:123123123 //七、獲取a,b左公共部分字符串(左邊第一個公共部分) String r="abcdsfsfs"; String s="accdc3sfsd"; String t=Strings.commonPrefix(r, s); System.out.println(t); //輸出:a //八、獲取a,b右公共部分字符串 String w="faaxyz"; String x="fwefxyz"; String z=Strings.commonSuffix(w, x); System.out.println(z); //輸出:xyz } }