java - java - 如何在Java中按空格拆分字符串并以键值的形式存储?
问题描述
我有一个由空格分隔的参数组成的字符串,格式如下:
Reference=R1,R2 GroupId=G01 Date=12/02/2017 15:25.
我需要以这样一种方式拆分字符串,即“=”标记的左侧是键,右侧是将存储在地图中的值。例如。
Key Value
Reference R1,R2
GroupId G01
Date 12/02/2017 15.25
我确实尝试使用 String.split(" ") 拆分字符串,但日期参数在日期和时间之间有一个空格,这会干扰安排。
解决方案
我们可以尝试拆分以下正则表达式模式:
\s+(?=[^=]+=)
这表示要拆分任意数量的空格,然后紧跟一个键 plus =
。请注意,除了分隔空格之外,此拆分不消耗任何内容,从而生成具有完整值的键。
Map<String, String> map = new HashMap<>();
String input = "Reference=R1,R2 GroupId=G01 Date=12/02/2017 15:25";
String[] parts = input.split("\\s+(?=[^=]+=)");
for (String part : parts) {
map.put(part.split("=")[0], part.split("=")[1]);
System.out.println(part);
}
这输出:
Reference=R1,R2
GroupId=G01
Date=12/02/2017 15:25
我在这里没有明确测试的唯一额外步骤是生成带有键和值的映射。
推荐阅读
- database - MongoDB 查询一个是简单的查找,另一个是使用正则表达式搜索相同的字符串,但结果都不同
- javascript - 使用 GULP 将来自 IP/$url 的请求重定向到 IP:port
- html - 动画剪辑路径时如何防止SVG路径上的轮廓?
- php - 我不能在 NB(8.2) 中使用宇宙飞船
- python - 在数据框中的行之间执行计算,并将结果值与前一行中的行值进行比较
- css - 基于滚动位置的反应样式
- python - python tkinter 不区分按钮
- flutter - 消费者不更新状态?
- html - 放大和缩小不应影响我在 HTML 和 CSS 中的弹出高度和宽度
- cloud-foundry - ubuntu vm 上的 PCF 安装失败