字符串處理工具Guava使用總結

字符串處理工具Guava使用總結java

 

          在java開發過程當中對字符串的處理是很是頻繁的,google的guava工具對字符串的一些處理進行優化,使咱們開發過程當中讓本身的代碼看去更加美觀,清爽。app

 

1:maven依賴:maven

      <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>

1、Joiner

根據給定的分隔符把字符串鏈接到一塊兒函數

 

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());
} }

 

 

2、Splitter

 

主要功能是拆分字符串爲集合 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);

 

 

3、Strings

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
    }
}
相關文章
相關標籤/搜索