[英]java - after splitting a string, what is the first element in the array?
[英]Attempting to pass the nth specified element after splitting a String array
下午好,編碼員。
對於以下內容,我有相同的XML代碼段
<E1EDP19 SEGMENT="1">
<QUALF>001</QUALF>
<IDTNR>101-CB-PI</IDTNR>
</E1EDP19>
<E1EDP19 SEGMENT="1">
<QUALF>002</QUALF>
<IDTNR>101-CB-PI</IDTNR>
<KTEXT>OXY MED 0,47KG PI/J44.9/0201/97062</KTEXT>
</E1EDP19>
<E1EDP19 SEGMENT="1">
<QUALF>003</QUALF>
<IDTNR>6005919004334</IDTNR>
</E1EDP19>
<E1EDP19 SEGMENT="1">
<QUALF>006</QUALF>
<IDTNR>MEDLRG</IDTNR>
</E1EDP19>
對於QUALF為002的每個實例,我需要采用KTEXT並將其除以/
我做到了
for (int i = 0; i < QUALF.length; ++i){
if (QUALF[i].equals("002")){
text = KTEXT[i];
String segments[] = text.split("/");
finalResult = segments[1];
result.addValue(finalResult);
}
}
但是,我想在此代碼的首次使用中訪問第二個元素(segments [1]),即。 J44.9
在第二次使用此代碼時,我需要訪問第三個元素,即。 0201
我目前收到arrayoutofbounds [1]異常。 除非我通過改變樣本
<E1EDP19 SEGMENT="1">
<QUALF>002</QUALF>
<IDTNR>101-CB-PI</IDTNR>
<KTEXT>OXY MED 0,47KG PI/J44.9/0201/97062</KTEXT>
</E1EDP19>
一審。
您正在使用i作為QUALF和KTEXT的索引。 這意味着如果QUALF [i] == 002是第5個元素,那么我將是4,並且您在KTEXT中超出范圍。
如果我理解的正確,您想創建第二個索引(j),其起始為1,並且每次進入IF時都將j遞增1。
for (int i = 0; i < QUALF.length; i++){
if (QUALF[i].equals("002")){
text = KTEXT[i];
String[] parts = text.split("/");
for (int j = 0; j < parts.length; j++){
if (j == 1){
String nthWord = parts[j];
result.addValue(nthWord);
}
}
}
}
謝謝大家 正如指出的那樣,在初始中有第二個循環來滿足第二個字段參數。
然后用[j]來標識數組中的第二個元素。
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.