为了账号安全,请及时绑定邮箱和手机立即绑定

字符串连接空值并检索空值java

字符串连接空值并检索空值java

三国纷争 2022-05-12 15:43:06
我正在使用 Stream.of 将几个字符串值与分隔符“:”连接起来,其中一个可以为空,但是当我将它检索到字符串数组时,我希望其中有固定数量的元素大批。我想知道字符串数组中的哪一个为空。例如,我通过使用连接了一个字符串Stream.of("abc", "def", "ghi", null)             .collect(Collectors.joining(":"));它将是“abc:def:ghi:null”。然后将其拆分为字符串数组,我使用final String[] strings = "abc:def:ghi:null".split(":");但是字符串 [3] 是“null”而不是 null。有没有办法将“null”转换为空值?
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

字符串"null"不是null。您需要过滤结果:

final String[] strings = Arrays.stream("abc:def:ghi:null".split(":")).filter(str -> str.equals("null")).toArray(String::new);

编辑:

抱歉,我没有正确阅读。如果您想将 、 映射"null"null,那么只需:

final String[] strings = Arrays.stream("abc:def:ghi:null".split(":")).map(str -> str == "null" ? null : str).toArray(String[]::new);



查看完整回答
反对 回复 2022-05-12
?
茅侃侃

TA贡献1842条经验 获得超21个赞

您应该将null映射作为后处理处理:


String[] strings =  "abc:def:ghi:null".split(":");

strings = Arrays.stream(strings).map(s-> s.equals("null")? null : s).toArray(String[]::new);

System.out.println(strings[3] == null);

打印true。


请注意,在这里您不知道是否在流中的原点使用null了"null"String ,因为一旦加入 String ,您就无法区分它们。


查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信