java.lang.ArrayIndexOutOfBoundsException: 1 文字列セグメンテーション配列が範囲外です。エラーは 1 です

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 で問題を削除しました。
同じ問題を持つ友人に見てもらえると幸いです。

 

おすすめ

転載: blog.csdn.net/qq_61324603/article/details/130677520