2013-10-08 2 views
0
import easyIO.*; 

class Oblig3A { 

    public static void main(String[] args) { 

    OrdAnalyse oA = new OrdAnalyse(args[0]); 
    oA.textLeser(); 
    } //closes main 
} //closes Oblig3 class 

class OrdAnalyse { 

    String[] ord = new String[5000]; 
    int[] antall = new int[5000]; 
    int antUnik = 0; 
    String argu; 


    OrdAnalyse(String file){ 

    argu = file; 
    } //args relay 

    void textLeser(){ 
     In lesText = new In(argu); 
    Out nyText = new Out("oppsummering.txt" , true); 

    while (!lesText.endOfFile()) { 
     String reader = lesText.inWord(); 
     for(int i=0; i<ord.length; i++) { 

     if(reader.equals(ord[i])) { 
      antall[i]++; 
      antUnik++; 
      ord[i] = reader; 
      nyText.out(ord[i]); 
     } //if 

     else { 
      antall[i]++; 

     } //else 
     } //for 
    }//while 
    }//textLeser 
}//OrdAnalyse.class 

문제가있는 것을 발견 할 수있는 사람은 누구입니까? : 도움이 필요해.스레드 "main"의 예외 java.lang.NullPointerException (Uni work)

나는 무엇이 잘못되었는지 전혀 모른다. 나는 많은 것을 시도했다. :/

확실하지가 비록 이유 :의

라인 (33) (reader.equals은 (ORD [I])) {

+5

스택 추적을 표시합니다. – luiscubal

+1

여기서 예외가 발생합니까? 줄 번호가 있어야하고 그 줄이 어디에 있는지 말해야합니다. –

+0

"나는 다른 것들을 많이 시도했습니다." 심지어 디버거? : 스레드 "주요"java.lang.NullPointerException이 에서 –

답변

2

그냥 다른 파일을 시도하고있어 = 경우이

Exception in thread "main" java.lang.NullPointerException 
    at OrdAnalyse.textLeser(Oblig3A.java:33) 
    at Oblig3A.main(Oblig3A.java:8) 

는 귀하의 의견을 바탕으로, 다음과 같은 메소드 호출은 null를 반환합니다.

String reader = lesText.inWord(); 

나중에 33 행에서 변수 reader에 액세스합니다.

if(reader.equals(ord[i])) 

null 개체에 대한 메소드 호출은 사용자가 본 NullPointerException을 던집니다.

endOfFile()과 연결된 inWord()은 예상대로 작동하지 않습니다. 두 가지 방법 모두에 대한 설명서를 읽고 의 결과를 inWord()에서 처리하는 방법을 결정해야합니다. 가장 쉬운 해결책은 바깥 쪽 루프를 해제하는 것이지만 다른 작업을 수행하는 것이 좋습니다.

String reader = lesText.inWord(); 
if (reader == null) { break; } 
+0

줄을 추가하여 편집 됨 33 – MrAdonexus

+0

@MrAdonexus 추가 설명을 위해 수정 된 답변. – afsantos

+0

행 33을 다음으로 변경했습니다. if (reader == ord [i]) { – MrAdonexus

관련 문제