簡體   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