按添加时间筛选邮政编码输出异常问题求助
修复按时间范围返回邮政编码的输出问题
核心问题出在你没有从存储记录中单独提取邮政编码字段,而是直接输出了包含时间等信息的完整对象,所以才会出现冗余内容。以下是具体修复步骤:
1. 明确实体类结构
假设你用如下实体类存储邮编和添加时间:
public class ZipCodeRecord { private String zipCode; private LocalDateTime addTime; // 构造方法、Getter/Setter省略 public String getZipCode() { return zipCode; } }
2. 过滤后提取邮编字段
当你完成时间范围的过滤逻辑后,不要直接返回过滤后的List<ZipCodeRecord>,而是通过流操作提取zipCode字段:
// 假设filteredRecords是你已经过滤好的符合时间条件的记录列表 List<ZipCodeRecord> filteredRecords = yourTimeFilterLogic(); // 提取仅包含邮政编码的列表 List<String> targetZipCodes = filteredRecords.stream() .map(ZipCodeRecord::getZipCode) // 调用Getter方法取出邮编 .collect(Collectors.toList());
3. 输出处理
如果是打印输出,直接遍历这个纯邮编列表即可:
// 逐行输出 targetZipCodes.forEach(System.out::println); // 或者按示例格式用顿号分隔输出 System.out.println(String.join("、", targetZipCodes));
补充:跨天时间范围的过滤逻辑优化
针对你提到的12点到2点这种跨天场景,过滤逻辑要注意判断条件:
public boolean isInTargetTimeRange(LocalDateTime recordTime) { LocalTime time = recordTime.toLocalTime(); LocalTime start = LocalTime.of(12, 0); LocalTime end = LocalTime.of(2, 0); // 跨天逻辑:时间>=12点 或者 时间<=2点 return time.isAfter(start) || time.isBefore(end); }
内容的提问来源于stack exchange,提问作者bm09
相关产品推荐
相关产品推荐

