2017-10-04 7 views
-4

당신은 나를 도울 수 있습니다. 나는 datamining에 약간의 데이터를 전처리하는 간단한 프로그램이 필요합니다. 그리고 나는 이것을 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); 

       } 
+2

전체 오류 메시지와 스택 추적을 붙여 넣을 수 있습니까? 더 작은 코드 샘플로 문제를 재현 할 수 있습니까? –

+3

문자열을'=='와 비교하지 마십시오. 우리에게 [mcve]를 보여주십시오. 거대한 벽의 코드를 통해가는 것은 짜증 스럽습니다. – Gendarme

+0

'파일을 읽는 중'은 아무 관계가 없습니다. 관련성을 유지하십시오. – EJP

답변

0

Java 배열 (모든 언어가 아닌 대부분은 있지만)은 색인이 생성됩니다.

첫 번째 열은 0이 아니라 1입니다.