我有String
个以空格分隔的URI。
http://...[sp]http://...[sp]http://...
我正在尝试拆分它,最后将它们收集到List
。
final List<URI> uris = Stream.of(string.split("\\s"))
.distinct()
.filter(s -> s.isEmpty())
.map(s -> {
try {
return new URI(s);
} catch (final URISyntaxException urise) {
return null;
}
})
.filter(uri -> uri != null)
.collect(Collectors.toList());
我的问题是,
null
并且后续过滤是不可避免的?答案 0 :(得分:1)
这应该足够了:
List<URI> uris = Stream.of(string.split("\\s+")).map(URI::create).collect(
Collectors.toList());
如果遇到任何无效输入,它将抛出异常,但我认为应该暴露错误,而不是悄悄地抑制错误。