Java 读取文件时发生数组脱离绑定异常

Java 读取文件时发生数组脱离绑定异常,java,indexoutofboundsexception,Java,Indexoutofboundsexception,你能帮帮我吗。。我需要一个简单的程序来预处理数据挖掘中的一些数据,我正试图用java来做这件事,但它给出了数组脱离绑定的异常,你能帮我修复它吗?谢谢 这项任务非常简单,只需读取两个文件,然后使用所需信息编写第三个文件 try { while ((linhapessoa = pessoain.readLine())!= null) { String[] splitlinhapessoa = linhap

你能帮帮我吗。。我需要一个简单的程序来预处理数据挖掘中的一些数据,我正试图用java来做这件事,但它给出了数组脱离绑定的异常,你能帮我修复它吗?谢谢

这项任务非常简单,只需读取两个文件,然后使用所需信息编写第三个文件

        try {
            while ((linhapessoa = pessoain.readLine())!= null)
            {
                String[] splitlinhapessoa = linhapessoa.split(",");
                String pessoaId = splitlinhapessoa[1] + splitlinhapessoa[2] + splitlinhapessoa[3] + splitlinhapessoa[4]
                + splitlinhapessoa[23];
                String domclId = splitlinhapessoa[1] + splitlinhapessoa[2] + splitlinhapessoa[3] + splitlinhapessoa[4];

                while ((linhaconsumo = consumoin.readLine())!= null)
                {
                 String[] splitlinhaconsumo = linhaconsumo.split(",");
                 String con_pessoaId = splitlinhaconsumo[1] + splitlinhaconsumo[2] + splitlinhaconsumo[3] +
                 splitlinhaconsumo[4] + splitlinhaconsumo[21]  ;
                 String con_domclId = splitlinhaconsumo[1] + splitlinhaconsumo[2] + splitlinhaconsumo[3] + splitlinhaconsumo[4];




                 if (pessoaId.equals(con_pessoaId))
                 {
                    if (((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "801"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1101"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1301"))|
                       ((splitlinhaconsumo[9] == "28") &&  (splitlinhaconsumo[10] == "2401"))|
                       ((splitlinhaconsumo[9] == "28") &&  (splitlinhaconsumo[10] == "2402")))
                       {cons_celular = "1"; val_cons_celular = splitlinhaconsumo[11];}

                    if (((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "801"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "901"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1101"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1401"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "401"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "501")))
                       {cons_telfixo = "1"; val_cons_telfixo = splitlinhaconsumo[11];}

                    if ((splitlinhaconsumo[9] == "28") &&  (splitlinhaconsumo[10] == "1101"))
                    {
                    cons_shows = "1"; val_cons_shows = splitlinhaconsumo[11];
                    }

                    if (((splitlinhaconsumo[9] == "13") &&  (splitlinhaconsumo[10] == "1701"))|
                       ((splitlinhaconsumo[9] == "15") &&  (splitlinhaconsumo[10] == "2701"))|
                       ((splitlinhaconsumo[9] == "28") &&  (splitlinhaconsumo[10] == "5701"))|
                       ((splitlinhaconsumo[9] == "28") &&  (splitlinhaconsumo[10] == "2601"))|
                       ((splitlinhaconsumo[9] == "28") &&  (splitlinhaconsumo[10] == "901")))                      
                       {cons_dvd = "1"; val_cons_dvd = splitlinhaconsumo[11]; }

                     if (((splitlinhaconsumo[9] == "6") && (splitlinhaconsumo[10] == "502"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "503"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "504"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "505"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "506"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "801"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "901"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1001"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1301"))|
                       ((splitlinhaconsumo[9] == "6") &&  (splitlinhaconsumo[10] == "1401")))                      
                       {cons_internet = "1"; val_cons_internet = splitlinhaconsumo[11];  }

                     if ((splitlinhaconsumo[9] == "28") && (splitlinhaconsumo[10] == "101"))
                     {cons_cinema = "1"; val_cons_cinema = splitlinhaconsumo[11];  }




                     String linhasaida = linhapessoa + ","  + cons_celular + "," + val_cons_celular + "," + cons_telfixo+ "," + val_cons_telfixo +
                     "," + cons_shows + "," + val_cons_shows + "," +  cons_dvd + "," + val_cons_dvd + "," + cons_internet + "," + val_cons_internet
                             + "," + cons_cinema + "," + val_cons_cinema;

                     processado.write(linhasaida);

                }

Java中的数组与大多数语言一样,但并非所有语言都是0索引的


因此,您的第一列是0,而不是1。

您可以粘贴完整的错误消息和堆栈跟踪吗?你能用更小的代码样本重现这个问题吗?不要将字符串与==进行比较。给我们看一本书。穿越一堵巨大的代码墙是很烦人的,“读文件”与此无关。保持相关性。