java.lang.ArrayIndexOutOfBoundsException: 1
split()分割字符串,出现数据越界异常,报错为1
今天学习redis数据库过程中,在实现读取txt文件,分割每一行数据,存储到hashmap集合中,再写入到redis数据库,但是就是报数组越界,我确定数据没有越界。
代码如下:
FileReader file = new FileReader("data\\student.txt");
BufferedReader br = new BufferedReader(file);
String line;
while ((line=br.readLine())!=null){
String id ="student:"+ line.split(",")[0];
String[] split = line.split(",");
System.out.println(split.length);
String name = split[1];
String age = split[2];
String sex = split[3];
String clazz = split[4];
// System.out.println(name);
// System.out.println(age);
// System.out.println(sex);
// System.out.println(clazz);
HashMap<String,String> map = new HashMap<String,String>();
map.put("name",name);
map.put("age",age);
map.put("sex",sex);
map.put("clazz",clazz);
// System.out.println(map);
jedis.hmset(id,map);
}
反复检查,代码也没有问题
报错如下:
显示数组越界,跟了一个1,百度了没找到类似问题和解决方案,只能自己慢慢想了。
然后输出分割的字符和字符长度,发现问题,最后一行长度一直为1.
我感觉应该是txt文件内容的问题
又仔细看了看发现问题,最后两行多敲了回车,将回车删除问题就解决啦
希望有相似问题的小伙伴能看到吧。