获取java.lang.ArrayIndexOutOfBoundsException
此错误请帮助。
以下是代码
public void extractData(String stringToExtract)
{
String metaDataValue = stringToExtract;
//System.out.println(metaDataValue);
String [] splitMetaDataValue = metaDataValue.split(",");
String [] tokenValue = null;
for (int i = 0; i<splitMetaDataValue.length ; i++)
{
tokenValue = splitMetaDataValue[i].split(":");
System.out.println(tokenValue[0]+"->"+tokenValue[1]);
}
}//extractData
答案 0 :(得分:1)
分割时,总是建议检查结果。
在你做之前:
tokenValue = splitMetaDataValue[i].split(":");
检查splitMetaDataValue
的长度。
答案 1 :(得分:1)
splitMetaDataValue[i].split(":").length
必须为2才能使以下内容有效:
的System.out.println(tokenValue [0] + “ - &gt;” 中+ tokenValue [1]);
即
tokenValue = splitMetaDataValue[i].split(":");
if (tokenValue.length > 1) {
System.out.println(tokenValue[0]+"->"+tokenValue[1]);
}
答案 2 :(得分:0)
表达式splitMetaDataValue[i].split(":")
不能保证产生2 Strings
的数组 - 在尝试访问其元素之前检查数组长度
if (tokenValue.length >= 2) {
System.out.println(tokenValue[0]+"->"+tokenValue[1]);
}
答案 3 :(得分:0)
您需要检查String [] tokenValue的大小。 行
System.out.println(tokenValue[0]+"->"+tokenValue[1]);
必须导致ArrayIndexOutOfBounds异常,因为它们假设splitMetaDataValue [i]将包含&#34;:&#34;。