![](/img/trans.png)
[英]How to split text between different delimiters while keeping delimiters in 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.