ava.lang.ArrayIndexOutOfBoundsException: 1
Split() が文字列を分割すると、データ範囲外例外が発生し、エラーは 1 になります。
今日、Redis データベースを学習する過程で、txt ファイルを読み取り、データの各行を分割し、ハッシュマップ コレクションに保存して、それを 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 が続きます。Baidu では同様の問題と解決策が見つからなかったので、ゆっくり考えるしかありません。
そこで分割文字と文字長を出力してみると問題が見つかりました 最終行の長さが常に1になってしまいます これは
txtファイルの内容に問題があるのではないかと思いました
よく見てみると問題が見つかりました を押しました最後の 2 行に Enter を入力し、Enter で問題を削除しました。
同じ問題を持つ友人に見てもらえると幸いです。