首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用不同的分隔符分隔JAVA

用不同的分隔符分隔JAVA
EN

Stack Overflow用户
提问于 2015-07-08 19:25:14
回答 1查看 50关注 0票数 1

假设我有这样的数据:

"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”分开--我不想这样做,因为这仅仅是一个损坏的部分,有什么方法可以实现吗?或者有什么建议?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-08 19:31:19

您可以通过两个对split的调用来实现这一点,第一个调用将字段限制为5字段:前4个字段和损坏的部分。

拆分的第一个调用是split,有一个限制。

这段代码利用了这样一个事实,即限制字段将原始字符串的剩余部分堆放到最后一个元素中,即使有更多的分隔符。

代码语言:javascript
运行
复制
String line = "TAI64A Fiat Siena 13283191 PARACHOQUE DEL-CAPOT";
String[] fields = line.split("\\s+", 5);
System.out.println(Arrays.toString(fields));

这将为您生成以下5个字段:

代码语言:javascript
运行
复制
[TAI64A, Fiat, Siena, 13283191, PARACHOQUE DEL-CAPOT]

第二个要拆分的调用是split。然后您可以在split上提取"-"上的最后一个元素来提取损坏的部件。

代码语言:javascript
运行
复制
String damaged = fields[4];
String[] parts = damaged.split("-");
System.out.println(Arrays.toString(parts));

这一产出如下:

代码语言:javascript
运行
复制
[PARACHOQUE DEL, CAPOT]

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31301881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档