java从字符串获取信息时我没有看到什么[]
我试图先使用“\n”作为分隔符将我的信息拆分为字符串[],然后再将其拆分为字符串[],但这次使用“作为分隔符。 然而,我无法从第二次分裂中获得信息
public static void initHashMap(){
String[] lijnen = readDefinitioncsv(definitioncsv).split("\n");
for (int i =2;i<lijnen.length;i++){
String[] detaillijn = lijnen[i].split(";");
// on the line below I get
//java.lang.ArrayIndexOutOfBoundsException: 1
int rood = Integer.parseInt(detaillijn[1]);
int groen = Integer.parseInt(detaillijn[2]);
int blauw = Integer.parseInt(detaillijn[3]);
String provincieNaam = detaillijn[4];
RGBProvince.put(new Color(rood,groen,blauw), provincieNaam);
}
}
谢谢你抽出时间
# 1 楼答案
为什么for循环在第三个位置初始化
大概你想要
i=0
此外,阵列可能没有2个元素:
这是第二个位置。但由于上面的循环,它可能什么都没有
在直接跳到数组中的一行/列之前,您可能应该检查至少有这么多行/列
# 2 楼答案
这将处理Windows行结尾(
\r\n
又称CR+LF)以及其他形式的CSV,因为;
似乎不起作用文件可能以空行结尾,在这种情况下,您需要使用
continue
跳过该行对于良好的顺序,指数从0开始;您似乎跳过了两行标题和第一列
# 3 楼答案
您正在
for
循环中将i
初始化为2。如果array
的项少于三项,则尝试访问一个不存在的位置时,会得到一个超出范围的索引为什么不从
int i = 0
开始呢