![](/img/trans.png)
[英]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.