Java互联网架构大数据使用开源工具类来实现这些逻辑了,它不香吗


下文主要分享这几个方向的常用工具类:
Java互联网架构大数据使用开源工具类来实现这些逻辑了,它不香吗
本文插图
字符串相关工具类
Java 中 String 应该是日常用的最多一个类吧 , 平常我们很多代码需要围绕 String, 做一些处理 。
JDK 提供 String API 虽然比较多 , 但是功能比较基础 , 通常我们需要结合 String 多个方法才能完成一个业务功能 。
下面介绍一下 Apache 提供的一个工具类 StringUtils.
Maven Pom 信息如下:
org.apache.commons
commons-lang3
3.10
commons-lang 有两个版本 , 一个是 commons-lang3, 一个是 commons-lang。
commons-lang 是老版本 , 已经很久没有维护了 。
commons-lang3 是一直在维护的版本 , 推荐直接使用这个版本 。
注意:如果你系统已经有 commons-lang , 注意如果直接替换成 commons-lang3 , 将会编译错误 。 commons-lang3 中相关类与 commons-lang 一样 , 但是包名不一样 。 判断字符串是否为空
判断字符串是否为空 , 想必每个人应该都写过吧:if (null == str || str.isEmpty()) {
虽然这段代码非常简单 , 但是说实话 , 小黑哥以前还是在这里犯过空指针的异常的 。
Java互联网架构大数据使用开源工具类来实现这些逻辑了,它不香吗
本文插图
使用 StringUtils, 上面代码可以替换下面这样:if (StringUtils.isEmpty(str)) {}
StringUtils 内部还有一个方法 isBlank , 也是用来判断字符串是否为空 , 两个方法比较相近 , 比较搞混 , 主要区别如下:// 如果字符串都是空格的话 , StringUtils.isBlank(" ")= true;StringUtils.isEmpty(" ")= false;
判断字符串是否为空 , 使用频率非常高 , 这里大家可以使用 IDEA Prefix 的功能 , 输入直接生成判空语句 。
Java互联网架构大数据使用开源工具类来实现这些逻辑了,它不香吗
本文插图
字符串固定长度
这个通常用于字符串需要固定长度的场景 , 比如需要固定长度字符串作为流水号 , 若流水号长度不足 ,, 左边补 0。
这里当然可以使用 String#format 方法 , 不过小黑哥觉得比较麻烦 , 这里可以这样使用:// 字符串固定长度 8位 , 若不足 , 忘左补 0StringUtils.leftPad("test", 8, "0");
另外还有一个 StringUtils#rightPad,这个方法与上面方法正好相反 。 字符串关键字替换
StringUtils 提供一些列的方法 , 可以替换某些关键字:// 默认替换所有关键字StringUtils.replace("aba", "a", "z")= "zbz";// 替换关键字 , 仅替换一次StringUtils.replaceOnce("aba", "a", "z")= "zba";// 使用正则表达式替换StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")= "ABC123";....字符串拼接
字符串拼接是个常见的需求 , 简单办法使用 StringBuilder 循环遍历拼接:String[] array = new String[]{"test", "1234", "5678"};StringBuilder stringBuilder = new StringBuilder();for (String s : array) {stringBuilder.append(s).append(";");}// 防止最终拼接字符串为空 if (stringBuilder.length() > 0) {stringBuilder.deleteCharAt(stringBuilder.length() - 1);}System.out.println(stringBuilder.toString());
上面业务代码不太难 , 但是需要注意一下上面这段代码非常容易出错 , 容易抛出 StringIndexOutOfBoundsException 。
这里我们可以直接使用以下方法获取拼接之后字符串:StringUtils.join(["a", "b", "c"], ",")= "a,b,c"
StringUtils 只能传入数组拼接字符串 , 不过我比较喜欢集合拼接 , 所以再推荐下 Guava 的 Joiner 。


推荐阅读