Java将数组用固定分隔符拼接成字符串

比如有一个数组是 String[] array = [ 'a', 'b', 'c' ],我希望把该数组中每个元素直接用 ' - ' 来拼接,得到 ”a-b-c",那么应该如何实现呢?

最传统的办法就是:

String result = array.get(0);
for(int i = 1; i < array.size(); i++) {
    result = result + "-" + item;
}

但是这个方法明显太繁琐,而且还需要判定各种异常情况,比如:如果数组size = 0,那么上面第一句话就会报错。

下面介绍两种方法,只需要一行就能实现字符串拼接操作,简便而且无需考虑很多情况。

1. 使用 org.apache.commons.lang.StringUtils 中的 join 函数。

StringUtils.join(array, "-")

2. 使用 Google Guava 中的 com.google.common.base.Joiner 类。

Joiner.on('-').join(array); 

join() 括号中的参数既可以传入 Iterable<?>,又可以传入 @Nullable Object first, @Nullable Object second, Object... rest 。

Guava 对空指针有着严格的限制,如果传入的对象中包含空指针,Joiner 会直接抛出 NullPointer Exception。与此同时,Joiner 提供了两个方法,让我们能够优雅的处理待拼接集合中的空指针。

如果我们希望忽略空指针,那么可以调用 skipNulls 方法,得到一个会跳过空指针的 Joiner 实例。如果希望将空指针变为某个指定的值,那么可以调用 useForNull 方法,指定用来替换空指针的字符串。

Joiner.on(' ').skipNulls().join(1, null, 3); //1 3
Joiner.on(' ').useForNull("None").join(1, null, 3); //1 None 3

需要注意的是,Joiner 实例是不可变的,skipNulls 和 useForNull 都不是在原实例上修改某个成员变量,而是生成一个新的 Joiner 实例。

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值