Java编写快递物流跟踪查询_字符串查找与数据展示实现

首先解析物流数据字符串,按分隔符拆分为单条记录;接着使用contains()、indexOf()等方法匹配关键状态与位置信息;然后通过substring()或正则提取时间与事件内容;最后格式化输出带序号的结构化日志列表,提升可读性。

快递物流信息查询是日常开发中常见的字符串处理场景。用户输入一串快递单号,系统需要从服务器获取对应的物流轨迹数据,并展示每一条带时间戳的记录。这个过程涉及字符串查找、数据解析和结果展示。

物流数据格式与字符串匹配

通常物流接口返回的是文本或JSON格式的数据,其中包含多条带有时间、地点和状态描述的记录。例如:

2025-05-10 08:30 北京转运中心已扫描 | 2025-05-11 14:20 上海分拨中心派送中

我们需要通过关键字如“已签收”、“派送中”、“已扫描”来定位当前物流状态。使用Java的co

ntains()方法可快速判断状态:

  • contains("已签收") → 判断是否送达
  • contains("派送中") → 当前正在配送
  • indexOf("上海") > -1 → 查看是否到达某城市

按行分割并提取关键信息

原始数据常以竖线“|”或换行符分隔,可用split()拆分成数组逐条处理:

// 示例代码片段
String data = "2025-05-10 08:30 北京转运中心已扫描 | 2025-05-11 14:20 上海分拨中心派送中";
String[] logs = data.split("\\|");
for (String log : logs) {
  System.out.println(log.trim());
}

每条日志可进一步用substring()或正则表达式提取时间与事件,提升结构化程度。

格式化输出增强可读性

将解析后的数据显示为带序号的列表,更清晰直观:

  • 1. [2025-05-10 08:30] 北京转运中心 → 已扫描
  • 2. [2025-05-11 14:20] 上海分拨中心 → 派送中

可在循环中加入计数器,利用String.format()对齐时间和内容,必要时添加颜色标记(控制台可用ANSI码)突出最新状态。

基本上就这些。字符串查找结合逻辑判断,再配合适当的数据展示方式,就能实现一个简洁实用的快递跟踪功能。不复杂但容易忽略细节,比如空值校验和时间排序。