Stories

Detail Return Return

Guava之Strings和Joiner、Splitter - Stories Detail


一、Strings工具類

Guava之Strings和Joiner、Splitter_System

1.Strings.padEnd方法

//padEnd普全右  
        String a="12345";  
        String b=Strings.padEnd(a, 10, 'x');  
        System.out.println(b);

結果為:12345xxxxx

2.Strings.padStart方法

//padStart 普全左  
        String a="12345";  
        String b=Strings.padStart(a, 10, 'x');  
        System.out.println(b);

結果為:xxxxx12345  

3.Strings.isNullOrEmpty 方法

//Strings.isNullOrEmpty 校驗空值  
        String a="";  
        boolean b=Strings.isNullOrEmpty(a);  
        System.out.println(b);

結果為:true

4.Strings.nullToEmpty 方法

//Strings.nullToEmpty  如果為null 轉為""  
        String a=null;  
        String b=Strings.nullToEmpty(a);  
        System.out.println(b);

結果為:

5.Strings.emptyToNull 方法

//Strings.emptyToNull  如果為"" 轉為null  
        String a="";  
        String b=Strings.emptyToNull(a);  
        System.out.println(b);

結果為:null  

6.Strings.repeat 方法

//Strings.repeat  重複字符串  
        String a="123";  
        String b=Strings.repeat(a, 3);  
        System.out.println(b);

結果為:123123123

7.Strings.commonPrefix 方法

//Strings.commonPrefix 獲取a,b左公共部分字符串  
        String a="abcdsfsfs";  
        String b="abc3sfsd";  
        String c=Strings.commonPrefix(a, b);  
        System.out.println(c);

結果為:abc

8.Strings.commonSuffix 方法

//Strings.commonSuffix 獲取a,b右公共部分字符串  
        String a="faaxyz";  
        String b="fwefxyz";  
        String c=Strings.commonSuffix(a, b);  
        System.out.println(c);  
        System.out.println(c);

結果為:xyz

9.Strings.lenientFormat 方法

//Strings.lenientFormat 格式化
        String s = Strings.lenientFormat("aa%sccdd", "b");
        System.out.println(s);

結果為:aabccdd



二、Joiner工具類

Joiner.on(",")設置分隔符;

Joiner.skipNulls()跳過null;

Joiner.useForNull("NULL文字")這個是來替換null的文字;

        System.out.println("Hello World!");
        Joiner joiner1 =  Joiner.on(",");
        Joiner joiner2 =  Joiner.on(",").skipNulls();
        Joiner joiner3 =  Joiner.on(",").useForNull("null文字");

        System.out.println(joiner1.join("1", "2", "3"));

        List<String> list =new ArrayList<String>();
        list.add("xiaoming");
        list.add("xiaohong");
        list.add(null);
        list.add("wangsan");
        System.out.println(joiner2.join(list));
        System.out.println(joiner3.join(list));

        StringBuilder builder=new StringBuilder("標題");
        System.out.println(joiner2.appendTo(builder, list));
        System.out.println(joiner3.appendTo(builder, list));

Guava之Strings和Joiner、Splitter_字符串_02

MapJoiner

        System.out.println("Hello World!");
        // 創建MapJoiner:用逗號連接鍵值對,用冒號連接鍵和值
        Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator(":");

        Map<String, String> data = new LinkedHashMap<>();
        data.put("name", "John");
        data.put("age", "25");
        data.put("city", "NewYork");
        data.put("country", "USA");

        System.out.println("原始Map: " + data);

        // 轉換為字符串
        String result = mapJoiner.join(data);

        System.out.println("連接結果: " + result);

        // 驗證往返轉換
        Splitter.MapSplitter splitter = Splitter.on(",").withKeyValueSeparator(":");
        Map<String, String> parsed = splitter.split(result);
        System.out.println("解析回Map: " + parsed);
        System.out.println("往返成功: " + data.equals(parsed));

Guava之Strings和Joiner、Splitter_List_03


三、Splitter工具類

Splitter.on(",")指定分隔符;

Splitter.omitEmptyStrings()省略遺漏忽略分割結果中的空字符串;

Splitter.trimResults()去除分割結果中每個字符串的前導和尾隨空白字符;

Splitter.limit()用於獲取多少個分隔值;

        System.out.println("Hello World!");
        Splitter splitter1 = Splitter.on(",");
        Splitter splitter2 = Splitter.on(",").omitEmptyStrings();
        Splitter splitter3 = Splitter.on(",").omitEmptyStrings().trimResults();
        List<String> list11 = splitter1.splitToList("1,2,,3,4,5,6,7,8,9,10");
        List<String> list12 = splitter1.splitToList("1,2,, 1 3,4,5,6,7,8,9,10");
        List<String> list13 = splitter1.splitToList("1,2 , , 1 3  ,4 ,5,6,7,8  ,9,10");

        List<String> list21 = splitter2.splitToList("1,2,,3,4,5,6,7,8,9,10");
        List<String> list22 = splitter2.splitToList("1,2,, 1 3,4,5,6,7,8,9,10");
        List<String> list23 = splitter2.splitToList("1,2 , , 1 3  ,4 ,5,6,7,8  ,9,10");

        List<String> list31 = splitter3.splitToList("1,2,,3,4,5,6,7,8,9,10");
        List<String> list32 = splitter3.splitToList("1,2,, 1 3,4,5,6,7,8,9,10");
        List<String> list33 = splitter3.splitToList("1,2 , , 1 3  ,4 ,5,6,7,8  ,9,10");

        System.out.println(list11);
        System.out.println(list12);
        System.out.println(list13);

        System.out.println(list21);
        System.out.println(list22);
        System.out.println(list23);

        System.out.println(list31);
        System.out.println(list32);
        System.out.println(list33);

Guava之Strings和Joiner、Splitter_字符串_04

MapSplitter

        System.out.println("Hello World!");
        // 創建MapSplitter:用逗號分割鍵值對,用冒號分割鍵和值
        Splitter.MapSplitter mapSplitter = Splitter.on(",")
                .withKeyValueSeparator(":");

        String data = "name:John,age:25,city:NewYork,country:USA";

        System.out.println("原始數據: " + data);

        // 解析為Map
        Map<String, String> result = mapSplitter.split(data);

        System.out.println("解析結果: " + result);
        System.out.println("Map大小: " + result.size());

        // 訪問具體的值
        System.out.println("姓名: " + result.get("name"));
        System.out.println("年齡: " + result.get("age"));
        System.out.println("城市: " + result.get("city"));
        System.out.println("國家: " + result.get("country"));

Guava之Strings和Joiner、Splitter_System_05





user avatar u_15702012 Avatar u_15505879 Avatar
Favorites 2 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.