有没有办法过滤掉所有大于可以存储在Long使用 Stream API 中的最大值的值?
目前的情况是,您可以通过一些客户的 ID 在前端通过简单的搜索栏进行搜索。
例如:123456789, 10987654321.如果您在这两个 ID 之间放置一个“分隔符”,则一切正常。但是,如果您忘记了“分隔符”,我的代码将尝试解析12345678910987654321为 Long,我想就存在问题了。
这会导致NumberFormatException尝试搜索后。Long有没有办法过滤掉这些因太大而无法解析为 a 的数字?
String hyphen = "-";
String[] customerIds = bulkCustomerIdProperty.getValue()
.replaceAll("[^0-9]", hyphen)
.split(hyphen);
...
customerFilter.setCustomerIds(Arrays.asList(customerIds).stream()
.filter(n -> !n.isEmpty())
.map(n -> Long.valueOf(n)) // convert to Long
.collect(Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud)