繁体   English   中英

用不同的分隔符分割JAVA

[英]Split with different delimiters JAVA

可以说我有这种数据:

“ IAB98D大宇Cielo 15487964 PARABRISAS TRA”

“ TAI64A菲亚特Siena 13283191 PARACHOQUE DEL-CAPOT”

“ RAD34B丰田卡罗拉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 ,具有限制。

该代码利用以下事实:限制字段会将原始字符串的其余部分(即使有更多分隔符)堆入最后一个元素。

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 然后,您可以split "-"上的最后一个元素以提取损坏的零件。

String damaged = fields[4];
String[] parts = damaged.split("-");
System.out.println(Arrays.toString(parts));

输出:

[PARACHOQUE DEL, CAPOT]

在使用索引4之前,您需要确保fields数组中确实有5个元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM