假设我有这样的数据:
"IAB98D大宇Cielo 15487964 PARABRISAS“ TAI64A Fiat Siena 13283191 PARACHOQUE DEL-CAPOT RAD34B丰田花冠11934274 TECHO-PUERTA TRA IZQ
其中:1元素=汽车的ID -2元素=汽车的品牌-3元素=汽车模型-4元素=车主的ID -5元素及其后用"-“分隔开的是汽车的损坏部件
问题是,当我使用.split(“")对前四个元素很好,但是在损坏的部分中,事情变得很棘手--例如,在第二个数组部件"PARACHOQUE DEL-CAPOT”中,这意味着有两个损坏的部件"PARACHOQUE DEL“和"CAPOT”(如果我使用.split(“") ),它会将"PARACHOQUE DEL”与"PARACHOQUE“和"DEL”分开--我不想这样做,因为这仅仅是一个损坏的部分,有什么方法可以实现吗?或者有什么建议?提前感谢!
发布于 2015-07-08 19:31:19
您可以通过两个对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]在使用索引fields之前,您需要确保在4数组中真正有5个元素。
https://stackoverflow.com/questions/31301881
复制相似问题