Guava中常见API的用法

1.使用前的准备

1.1 jdk版本

代码中使用的是jdk1.8版本。

1.2 导入jar包
<dependency>
   <groupId>com.google.guava</groupId>
   <artifactId>guava</artifactId>
   <version>23.0</version>
</dependency>

2.Joiner类的常用方法

2.1 字符串的拼接
package com.gongsl.test;

import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Tom", "Jack", "Bob", "Jerry", "Lucy");
        String str = Joiner.on("|").join(list);
        System.out.println(str);//运行结果:Tom|Jack|Bob|Jerry|Lucy
    }
}
2.2 字符串的拼接(跳过null值)
package com.gongsl.test;

import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Tom", "Jack", "Bob", null, "Lucy");
        String str = Joiner.on("|").skipNulls().join(list);
        System.out.println(str);//运行结果:Tom|Jack|Bob|Lucy
    }
}
2.3 字符串的拼接(给null值设置默认值)
package com.gongsl.test;

import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Tom", "Jack", "Bob", null, "Lucy");
        String str = Joiner.on("|").useForNull("default").join(list);
        System.out.println(str);//运行结果:Tom|Jack|Bob|default|Lucy
    }
}

注:以上三种场景都是拿集合来举例的,如果换做数组,也都可以达到同样的效果。

3.Splitter类的常用方法

3.1 字符串的分割
package com.gongsl.test;

import com.google.common.base.Splitter;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        String str = "Tom|Jack|Bob|Lucy|Jerry";
        List<String> list = Splitter.on("|").splitToList(str);
        System.out.println(list);//运行结果:[Tom, Jack, Bob, Lucy, Jerry]
    }
}
3.2 字符串的分割(跳过空值)
package com.gongsl.test;

import com.google.common.base.Splitter;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        String str = "Tom|Jack|Bob||Lucy|Jerry";
        List<String> list = Splitter.on("|").omitEmptyStrings().splitToList(str);
        System.out.println(list);//运行结果:[Tom, Jack, Bob, Lucy, Jerry]
    }
}
//如果上面不使用omitEmptyStrings()方法,运行结果就是:[Tom, Jack, Bob, , Lucy, Jerry]
3.3 字符串的分割(去除空格)
package com.gongsl.test;

import com.google.common.base.Splitter;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        String str = "Tom|Jack|Bob  |Lucy|Jerry";
        List<String> list = Splitter.on("|").trimResults().splitToList(str);
        System.out.println(list);//运行结果:[Tom, Jack, Bob, Lucy, Jerry]
    }
}
//如果上面不使用trimResults()方法,运行结果就是:[Tom, Jack, Bob  , Lucy, Jerry]
3.4 根据指定长度分割字符串
package com.gongsl.test;

import com.google.common.base.Splitter;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        String str = "abcdefghijklmn";
        List<String> list = Splitter.fixedLength(3).splitToList(str);
        System.out.println(list);//运行结果:[abc, def, ghi, jkl, mn]
    }
}
3.5 指定字符串分割后的最大个数
package com.gongsl.test;

import com.google.common.base.Splitter;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) {
        String str = "Tom|Jack|Bob|Lucy|Jerry";
        List<String> list = Splitter.on("|").limit(3).splitToList(str);
        System.out.println(list);//运行结果:[Tom, Jack, Bob|Lucy|Jerry]
    }
}
//这里的意思就是根据“|”把字符串进行分割,分割后的集合的个数最大只能是3个。

4.Files类的常用方法

package com.gongsl.test;

import com.google.common.base.Charsets;
import com.google.common.base.Joiner;
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
import java.util.List;

public class GuavaTest {
    public static void main(String[] args) throws IOException {
        File input = new File("C:\\Windows\\System32\\drivers\\etc\\hosts");
        List<String> strings = Files.readLines(input, Charsets.UTF_8);
        //由于是按行读取,所以这里只有加上"\n"才能保证这个字符串和文本内容完全一致
        String text = Joiner.on("\n").join(strings);
        System.out.println(text);

        File output = new File("F:\\logs\\b.txt");
        Files.write(text.getBytes(), output);
    }
}

以上就是使用Guava中的方法来实现文件的读写操作,感觉要比java自带的要方便很多。

5.BaseEncoding类的常用方法

5.1 base64的编码
package com.gongsl.test;

import com.google.common.io.BaseEncoding;

public class GuavaTest {
    public static void main(String[] args){
        String str = "my name is gongsl";
        BaseEncoding baseEncoding = BaseEncoding.base64();
        String test = baseEncoding.encode(str.getBytes());
        System.out.println(test);//运行结果:bXkgbmFtZSBpcyBnb25nc2w=
    }
}
5.2 base64的解码
package com.gongsl.test;

import com.google.common.io.BaseEncoding;

public class GuavaTest {
    public static void main(String[] args){
        String str = "bXkgbmFtZSBpcyBnb25nc2w=";
        BaseEncoding baseEncoding = BaseEncoding.base64();
        String test = new String(baseEncoding.decode(str));
        System.out.println(test);//运行结果:my name is gongsl
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值