用不同的分隔符拆分 JAVA
Split with different delimiters JAVA
假设我有这样的数据:
"IAB98D Daewoo Cielo 15487964 PARABRISAS TRA"
"TAI64A Fiat Siena 13283191 PARACHOQUE DEL-CAPOT"
"RAD34B Toyota Corolla 11934274 TECHO-PUERTA TRA IZQ"
其中:第一个元素 = 汽车 ID - 第二个元素 = 汽车品牌 - 第三个元素 = 汽车型号 - 第四个元素 = 车主 ID - 第五个元素及以“-”分隔的部分为损坏部件汽车
当我使用 .split(" ") 时,前四分之一的元素工作正常,但在损坏的部分是事情变得棘手的地方,例如在第二个数组部分 "PARACHOQUE DEL-CAPOT" 这意味着有 2损坏的部分 "PARACHOQUE DEL" 和 "CAPOT" 如果我使用 .split(" ") 它会将 "PARACHOQUE DEL" 分开到 "PARACHOQUE" 和 "DEL" 我不希望这样发生是因为那只是 1 个损坏的部分,有什么办法可以实现这一目标吗?或任何建议?提前致谢!
您可以通过两次调用 split
来完成此操作,第一次调用将字段限制为 5
个字段:前 4 个字段和损坏的部分。
第一次调用 split 是 two-arg overload of split
,有限制。
这段代码利用了限制字段将原始字符串的剩余部分(即使有更多分隔符)堆到最后一个元素这一事实。
String line = "TAI64A Fiat Siena 13283191 PARACHOQUE DEL-CAPOT";
String[] fields = line.split("\s+", 5);
System.out.println(Arrays.toString(fields));
这将为您生成 5 个字段:
[TAI64A, Fiat, Siena, 13283191, PARACHOQUE DEL-CAPOT]
第二次调用 split 是 one-arg overload of split
。
然后可以split
最后一个元素"-"
提取损坏的部分。
String damaged = fields[4];
String[] parts = damaged.split("-");
System.out.println(Arrays.toString(parts));
这输出:
[PARACHOQUE DEL, CAPOT]
在使用索引 4
.
之前,您需要确保 fields
数组中确实有 5 个元素
假设我有这样的数据:
"IAB98D Daewoo Cielo 15487964 PARABRISAS TRA"
"TAI64A Fiat Siena 13283191 PARACHOQUE DEL-CAPOT"
"RAD34B Toyota Corolla 11934274 TECHO-PUERTA TRA IZQ"
其中:第一个元素 = 汽车 ID - 第二个元素 = 汽车品牌 - 第三个元素 = 汽车型号 - 第四个元素 = 车主 ID - 第五个元素及以“-”分隔的部分为损坏部件汽车
当我使用 .split(" ") 时,前四分之一的元素工作正常,但在损坏的部分是事情变得棘手的地方,例如在第二个数组部分 "PARACHOQUE DEL-CAPOT" 这意味着有 2损坏的部分 "PARACHOQUE DEL" 和 "CAPOT" 如果我使用 .split(" ") 它会将 "PARACHOQUE DEL" 分开到 "PARACHOQUE" 和 "DEL" 我不希望这样发生是因为那只是 1 个损坏的部分,有什么办法可以实现这一目标吗?或任何建议?提前致谢!
您可以通过两次调用 split
来完成此操作,第一次调用将字段限制为 5
个字段:前 4 个字段和损坏的部分。
第一次调用 split 是 two-arg overload of split
,有限制。
这段代码利用了限制字段将原始字符串的剩余部分(即使有更多分隔符)堆到最后一个元素这一事实。
String line = "TAI64A Fiat Siena 13283191 PARACHOQUE DEL-CAPOT";
String[] fields = line.split("\s+", 5);
System.out.println(Arrays.toString(fields));
这将为您生成 5 个字段:
[TAI64A, Fiat, Siena, 13283191, PARACHOQUE DEL-CAPOT]
第二次调用 split 是 one-arg overload of split
。
然后可以split
最后一个元素"-"
提取损坏的部分。
String damaged = fields[4];
String[] parts = damaged.split("-");
System.out.println(Arrays.toString(parts));
这输出:
[PARACHOQUE DEL, CAPOT]
在使用索引 4
.
fields
数组中确实有 5 个元素