Java基础-String的split拆分与合并

本文介绍如何使用Java标准库和Guava库进行字符串的拆分与合并操作。重点讲解如何利用Guava处理空值和多余空格,同时提供join方法的使用技巧及避免常见问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
split提供了两个参数,第一个参数是拆分的标准字符,第二个参数是limit,即需要拆分成几个元素。需要注意的是,拆分结果是返回一个字符串类型的数组String[],而不是String;
具体示例如下:
在这里插入图片描述
在这里插入图片描述

可以的到结论是拆分结果里不会出现被拆分的字段,同时还受limit参数的影响。
另外拆分对象中存在空值的时候并不会去除而是同样保留下来,示例如下:
在这里插入图片描述
但平时需求中通常不需要保留空值(虽然也有trim,但是只能去除前后的空格),这时就需要用到第三方的开源API——Guava。
以下是网上找到的相关知识与学习链接。

String a =",a, ,  b  c ,";
// Splitter 是 Guava 提供的 API 
List<String> list = Splitter.on(',')
    .trimResults()// 去掉空格
    .omitEmptyStrings()// 去掉空值
    .splitToList(a);
log.info("Guava 去掉空格的分割方法:{}",JSON.toJSONString(list));
// 打印出的结果为:
["a","b  c"]

学习链接
合并我们使用 join 方法,此方法是静态的,我们可以直接使用。方法有两个入参,参数一是合并的分隔符,参数二是合并的数据源,数据源支持数组和 List,在使用的时候,我们发现有两个不太方便的地方:

不支持依次 join 多个字符串,比如我们想依次 join 字符串 s 和 s1,如果你这么写的话 String.join(",",s).join(",",s1) 最后得到的是 s1 的值,第一次 join 的值被第二次 join 覆盖了;
如果 join 的是一个 List,无法自动过滤掉 null 值。
而 Guava 正好提供了 API,解决上述问题,演示如下:

// 依次 join 多个字符串,Joiner 是 Guava 提供的 API
Joiner joiner = Joiner.on(",").skipNulls();
String result = joiner.join("hello",null,"china");
log.info("依次 join 多个字符串:{}",result);

List<String> list = Lists.newArrayList(new String[]{"hello","china",null});
log.info("自动删除 list 中空值:{}",joiner.join(list));
// 输出的结果为;
依次 join 多个字符串:hello,china
自动删除 list 中空值:hello,china

Guava 不仅仅支持多个字符串的合并,还去掉了 List 中的空值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值