Guava学习

Utilites

Joiner

public class JoinerTest {private final List<String> stringList = Arrays.asList("Google","Guava","Java","Python","Spring");private final List<String> stringListWithNullValue = Arrays.asList("Google","Guava","Java","Python",null);private final   String targetFileName = "C:\\Users\\jifei.guo\\Desktop\\Joiner.txt";private final Map<String,String> map = ImmutableMap.of("hello","world","hi","guava");@Testpublic void testJoinOnJoin(){String result = Joiner.on("#").join(stringList);System.out.println(result);}@Testpublic void testJoinOnJoinWithNullValue(){String result = Joiner.on("#").skipNulls().join(stringListWithNullValue);System.out.println(result);}@Testpublic void testJoinOnJoinWithNullValueUseDefaultValue(){String result = Joiner.on("#").useForNull("default").join(stringListWithNullValue);System.out.println(result);}@Testpublic void testJoinOnJoinOnAppendStringBuilder(){final StringBuilder stringBuilder = new StringBuilder();StringBuilder stringBuilder1 = Joiner.on("#").useForNull("default").appendTo(stringBuilder, stringListWithNullValue);System.out.println(stringBuilder1);System.out.println(stringBuilder);}@Testpublic void testJoinOnJoinOnAppendWriter(){try(FileWriter fileWriter = new FileWriter(targetFileName);){//            Joiner.on("#").useForNull("default").appendTo(fileWriter, stringListWithNullValue);Joiner.on("\n").useForNull("null").appendTo(fileWriter, stringListWithNullValue);fileWriter.close();}catch (Exception exception){exception.printStackTrace();}finally {}}@Testpublic void testJoinOnJoinOnAppendMap(){Map<String,String> stringMap = new HashMap<>();stringMap.put("C","GOOD");stringMap.put("Python","notbad");stringMap.put("php","justsoso");stringMap.put("java","best");String join = Joiner.on("#").withKeyValueSeparator(":").join(stringMap);System.out.println(join);}}

Splitter

public class SplitterTest {/*** 1. 把(字符串)分割为(集合). <Result>*/@Testpublic void test_Splitter_OnSplitter() {List<String> list = Splitter.on("|").splitToList("Hello|Java");assertThat(list, notNullValue());assertThat(list.size(), equalTo(2));assertThat(list.get(0), equalTo("Hello"));assertThat(list.get(1), equalTo("Java"));}/*** 1. 把(字符串)分割为(集合). <Result>* 2. 若字符串分割之后, 含有空字符串, 使用omitEmptyStrings过滤掉.*/@Testpublic void test_Splitter_Omit() {List<String> list = Splitter.on("|").splitToList("Hello|Java|||");assertThat(list, notNullValue());assertThat(list.size(), equalTo(5));list = Splitter.on("|").omitEmptyStrings().splitToList("Hello|Java|||");assertThat(list, notNullValue());assertThat(list.size(), equalTo(2));}/*** 1. 把(字符串)分割为(集合). <Result>* 2. 若字符串分割之后, 含有空字符串, 使用omitEmptyStrings过滤掉.* 3. 若subString左右还有空格时, 可以使用trimResults去除.*/@Testpublic void test_Splitter_Trim_Omit() {List<String> list = Splitter.on("|").splitToList("Hello | Java |||");assertThat(list, notNullValue());assertThat(list.size(), equalTo(5));assertThat(list.get(0), equalTo("Hello "));assertThat(list.get(1), equalTo(" Java "));list = Splitter.on("|").trimResults().omitEmptyStrings().splitToList("Hello|Java|||");assertThat(list, notNullValue());assertThat(list.size(), equalTo(2));assertThat(list.get(0), equalTo("Hello"));assertThat(list.get(1), equalTo("Java"));}/*** 1. 把(字符串)分割为(集合). <Result>* 2. 固定长度切割字符串:fixedLength.*/@Testpublic void test_Splitter_FixedLength() {List<String> list = Splitter.fixedLength(4).splitToList("aaaabbbbcccc");assertThat(list, notNullValue());assertThat(list.size(), equalTo(3));assertThat(list.get(0), equalTo("aaaa"));assertThat(list.get(2), equalTo("cccc"));}/*** 1. 把(字符串)分割为(集合). <Result>* 2. limit: 只根据分隔符, 分割几次字符串.*/@Testpublic void test_Splitter_Limit() {List<String> list = Splitter.on("#").limit(3).splitToList("Java#C++#C#Shell");assertThat(list, notNullValue());assertThat(list.size(), equalTo(3));assertThat(list.get(0), equalTo("Java"));assertThat(list.get(2), equalTo("C#Shell"));}/*** 1. 把(字符串)分割为(集合). <Result>* 2. 使用正则表达式, 作为分隔符.*/@Testpublic void test_Splitter_OnPattern() {List<String> list = Splitter.onPattern("\\#").limit(3).splitToList("Java#C++#C#Shell");// List<String> list = Splitter.on(Pattern.compile("#")).limit(3).splitToList("Java#C++#C#Shell");assertThat(list, notNullValue());assertThat(list.size(), equalTo(3));assertThat(list.get(0), equalTo("Java"));assertThat(list.get(2), equalTo("C#Shell"));}/*** 1. 把(字符串)分割为(集合). <Result>* 2. 字符串转换为Map.* 3. withKeyValueSeparator: 指定key和value通过什么进行分割.*/@Testpublic void test_Splitter_ToMap() {Map<String, String> map = Splitter.on("#").withKeyValueSeparator("=").split("Java=1#C++=2#C=3#Shell=4");assertThat(map, notNullValue());assertThat(map.size(), equalTo(4));assertThat(map.get("Java"), equalTo("1"));assertThat(map.get("C"), equalTo("3"));}
}

Preconditions

public class PreconditionsTest {// 打印输出方法private static void print(Object obj) {System.out.println(String.valueOf(obj));}// 测试方法private static boolean testMethod() {return 1 > 2;}// 测试对象private static Object testObject() {return null;}public static void main(String[] args) {// checkArgumenttry {// 校验表达式是否正确,并使用占位符输出错误信息Preconditions.checkArgument(1 > 2, "%s is wrong", "1 > 2");} catch (IllegalArgumentException e) {print(e.getMessage()); // 1 > 2 is wrong}// checkStatetry {// 校验表达式是否正确,并使用占位符输出错误信息,使用方法作为表达式,一般用作校验方法返回是否为真Preconditions.checkState(testMethod(), "%s is wrong", "testMethod()");} catch (IllegalStateException e) {print(e.getMessage()); // testMethod() is wrong}// checkNotNulltry {// 校验对象是否为空,并使用占位符输出错误信息Preconditions.checkNotNull(testObject(), "%s is null", "testObject()");} catch (NullPointerException e) {print(e.getMessage()); // testObject() is null}// 初始化测试用listList<Integer> list = new ArrayList<Integer>();for (int i = 0; i < 10; i++) {list.add(i);}// checkElementIndextry {// 校验元素索引是否有效 ,使用checkPositionIndex校验Preconditions.checkElementIndex(10, list.size());// 在临界值size处产生异常} catch (IndexOutOfBoundsException e) {print(e.getMessage()); // index (10) must be less than size (10)}// checkPositionIndextry {// 校验元素索引是否有效,使用checkPositionIndex校验Preconditions.checkPositionIndex(10, list.size());// 在临界size处不产生异常// print("checkPositionIndex does not throw IndexOutOfBoundsException");} catch (IndexOutOfBoundsException e) {print(e.getMessage()); // checkPositionIndex does not throw}// checkPositionIndexestry {// 校验是否是有效的索引区间Preconditions.checkPositionIndexes(3, 11, list.size());} catch (IndexOutOfBoundsException e) {print(e.getMessage()); // end index (11) must not be greater than}}
}

Strings

public class StringsTest {@Testpublic void stringsMethodTest() {assertThat(Strings.emptyToNull(""), nullValue()); // 将空字符串替换为NullassertThat(Strings.nullToEmpty(null), equalTo("")); // 将Null替换为空字符串assertThat(Strings.isNullOrEmpty(null), equalTo(true)); // 判断字符串是否为Null或者空assertThat(Strings.isNullOrEmpty("Hello"), equalTo(false)); // 如果包含空格,则任务非空}@Testpublic void stringsPrefixTest() {assertThat(Strings.commonPrefix("Hello", "Head"), equalTo("He"));assertThat(Strings.commonSuffix("Hello", "Hero"), equalTo("o"));}@Testpublic void stringsContextTest() {assertThat(Strings.repeat("Hello", 3), equalTo("HelloHelloHello")); // 字符串重复assertThat(Strings.padStart("H", 1, 'W'), equalTo("H")); // 判断字符串的长度,如果没有达到长度则不补字符assertThat(Strings.padStart("Hello", 6, 'W'), equalTo("WHello")); // 向字符串的前面补齐指定字符assertThat(Strings.padEnd("Hello", 6, 'W'), equalTo("HelloW")); // 如果字符串的长度不足,则向字符串的后面补齐指定字符}@Testpublic void testCharMatcher() {// 判断字符的类型, Digit表示数字类型,如果数字类型则为true,否则为falseassertThat(CharMatcher.javaDigit().matches('5'), equalTo(true));assertThat(CharMatcher.javaDigit().matches('x'), equalTo(false));// 判断字符出现的次数assertThat(CharMatcher.is('A').countIn("A Girl is a godness"), equalTo(1));// 匹配并替换空格// 多个空格只会替换为一个字符assertThat(CharMatcher.breakingWhitespace().collapseFrom("    Hello Girl  ", '*'), equalTo("*Hello*Girl*"));}}

StopWatch

public class StopwatchTest {@Testpublic void test1() throws Exception {String orderNo = "12345678";System.out.println("订单 [{" + orderNo + "}] 开始处理");Stopwatch stopwatch = Stopwatch.createStarted();TimeUnit.SECONDS.sleep(1);  // 1秒处理时间System.out.println("订单 [{" + orderNo + "}] 处理完成,耗时 [{" + stopwatch.stop() + "}]");}@Testpublic void test2() throws Exception {// 创建stopwatch并开始计时Stopwatch stopwatch = Stopwatch.createStarted();Thread.sleep(1980);// 以秒打印从计时开始至现在的所用时间,向下取整System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 1// 停止计时stopwatch.stop();System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 1// 再次计时stopwatch.start();Thread.sleep(100);System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 2// 重置并开始stopwatch.reset().start();Thread.sleep(1030);// 检查是否运行System.out.println(stopwatch.isRunning()); // truelong millis = stopwatch.elapsed(TimeUnit.MILLISECONDS); // 1034System.out.println(millis);// 打印System.out.println(stopwatch.toString()); // 1.034 s}public static void main(String[] args) throws InterruptedException {// 创建自动start的计时器Stopwatch watch = Stopwatch.createStarted();Thread.sleep(1000L);long time = watch.elapsed(TimeUnit.MILLISECONDS);System.out.println("代码执行时长:" + time);watch.reset();watch.start();Thread.sleep(500L);time = watch.elapsed(TimeUnit.MILLISECONDS);System.out.println("代码执行时长:" + time);}
}

IO

public class IOTest {private static final String SOURCE_FILE = "C:\\Users\\a\\Desktop\\base - 副本.sql";private static final String TARGET_FILE = "C:\\Users\\a\\Desktop\\base1.sql";@Testpublic void testCopyFilesWithGuava() throws IOException {Files.copy(new File(SOURCE_FILE),new File(TARGET_FILE));}@Testpublic void testMoveFile() throws IOException {try{File target = new File(TARGET_FILE);Files.move(new File(SOURCE_FILE),target);}catch (Exception e){e.printStackTrace();}}@Testpublic void testToString() throws IOException {try{File target = new File(TARGET_FILE);Files.move(new File(SOURCE_FILE),target);}catch (Exception e){e.printStackTrace();}}}

Guava-Utilites学习测试类相关推荐

  1. 普通话测试软件测分准吗,普通话学习测试类 | 普通话测试APP,能做到测试、学习提高两不误吗?...

    原标题:普通话学习测试类 | 普通话测试APP,能做到测试.学习提高两不误吗? 普通话是如今人们生活的常用语言,但要说到参加普通话测试,如果没有提前了解普通话测试的形式与要求,也不知道自己普通话的起步 ...

  2. java测试类 main方法_Java使用agent实现main方法之前的实例详解

    Java使用agent实现main方法之前的实例详解 创建Agent项目 PreMainExecutor 类,在main方法之前执行此方法 public class PreMainExecutor { ...

  3. Guava库学习:学习Guava EventBus(二)EventBus 事件订阅示例

    2019独角兽企业重金招聘Python工程师标准>>> 原文地址:Guava库学习:学习Guava EventBus(二)EventBus 事件订阅示例 上一篇Guava库学习:学习 ...

  4. 怎样编写测试类测试分支_编写干净的测试-被认为有害的新内容

    怎样编写测试类测试分支 很难为干净的代码找到一个好的定义,因为我们每个人都有自己的单词clean的定义. 但是,有一个似乎是通用的定义: 简洁的代码易于阅读. 这可能会让您感到有些惊讶,但我认为该定义 ...

  5. 怎样编写测试类测试分支_编写干净的测试–从配置开始

    怎样编写测试类测试分支 很难为干净的代码找到一个好的定义,因为我们每个人都有自己的单词clean的定义. 但是,有一个似乎是通用的定义: 简洁的代码易于阅读. 这可能会让您感到有些惊讶,但我认为该定义 ...

  6. Android之Junit测试类

    今天跟着视频学习了Junit测试类,趁热打铁.顺便把学的东西整理下来,再就是为了以后好回顾 1.Junit单元测试介绍: 在实际开发中,经常要对已经实现的功能进行单元测试,以保证当前单元没问题,尽可能 ...

  7. Guava库学习:学习Concurrency(九)RateLimiter

    2019独角兽企业重金招聘Python工程师标准>>> 链接地址:http://www.xx566.com/detail/164.html 上一篇,Guava库学习:学习Concur ...

  8. 《测试类职位面试360度》

    目录: 第一:测试类职位面试资料 1.        测试类职位的行业方向和职位发展方向及发展路径 一,测试类职位的行业方向 二,测试类职位发展方向和发展路径 对于测试来说(转岗的不算),无外乎就四个 ...

  9. 编写类的步骤编写测试类

    目录 1,编写类的步骤 1,编写类 2,编写属性,也叫做成员变量 3,编写方法 2,编写测试类就是含有main方法的类 3.编写对象 1,编写类的步骤 1,编写类 编写类的格式:修饰符 class 类 ...

最新文章

  1. 列出这周开发工作时间及内容,可以发表各种感想和这周阅读内容。
  2. 基于异或,取反和循环移位实现一个简单的加密解密函数
  3. 第一章 TensorFlow基础——python语法(一)
  4. Cassandra - Insert after Delete fails silently
  5. 计算机录入员考试题及答案,计算机录入员理论考题及答案.docx
  6. vue todolist
  7. WebService简单示例
  8. 利用Aria2高速下载网盘文件
  9. React-Native 组件开发方法
  10. C++11 多线程 线程管理基础
  11. ZH奶酪:PHP遍历目录/文件的3种方法
  12. Oracle集群(RAC)及 jdbc 连接双机数据库
  13. mt4交易系统源码_如何将源码加载到mt4里面
  14. 2.4G天线在PCB板上的设计
  15. 后台事务调用需启动工作流监听
  16. 向量场的散度和旋度_矢量场,标量场,散度,梯度,旋度的理解
  17. 《程序员》12月精彩内容:双11技术决战
  18. 离散数学蕴含等值式前件为假命题为真的理解
  19. C++和opencv实现图像分割(二)
  20. android裁剪图片功能,Android实现图片区域裁剪功能

热门文章

  1. HP tank 519 设置无边距卡纸
  2. JS 实现网站简繁体切换
  3. 《0Day安全》之堆溢出
  4. 奶爸英语学习课程要点(4-6课)
  5. PostgreSQL嵌套事务提交流程研究
  6. slack 使用说明_使用Reacji自动将Slack消息移至其他渠道
  7. 重装系统lol登录服务器,LOL无法登录的彻底解决方法
  8. 甘特图制定项目计划,提高项目管理效率
  9. 汇编指令lmm_动画视频角色的LMM神经网络
  10. 23位华人学者入选!2022年ACM杰出会员名单公布!