簡體   English   中英

拆分String數組后嘗試傳遞第n個指定元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM