下午好的编码员。
对于下面的内容,我有相同的XML Snippet
<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
在第二次使用此代码时,我需要访问第3个元素,即。 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>
第1实例。
答案 0 :(得分:0)
您正在使用i作为QUALF和KTEXT的索引。这意味着如果QUALF [i] == 002是第5个元素,我将是4并且您在KTEXT中不受限制。
如果我理解你的话,你想要制作一个第二个索引(j),该索引(j)以1开始,并且每当你进入IF时,将j加1。
答案 1 :(得分:0)
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]来识别数组中的第二个元素。
干杯。