2014-10-25 3 views
0

프로젝트 과제는 다음블루 펠리칸 자바 프로젝트 (24) 파일 읽기

가 temp_Larry 폴더에 저장되어 NerdData라는 이름의 파일에서 텍스트의 라인 (당신의 이름을 입력 가정 할 것이다라는 클래스 FileNerd 쓰기 래리입니다.) 파일 입력 루프가 끝난 후 은 "The"라는 단어로 시작하는 줄만 출력하는 루프를 만듭니다.

그래서 이것은 내가 지금까지

import java.util.*; 
import java.io.*; 
public class FileNerd 
{ 
    public static void main (String args[]) throws IOException 
    { 
     Scanner sf = new Scanner(new File("C:\\temp_Larry\\NerdData.txt")); 
     int maxIndx = -1; 
     String text[] = new String[100 ]; 
     while(sf.hasNext()) 
     { 
      maxIndx++; 
      text[maxIndx]=sf.nextLine(); 
     } 
     sf.close(); 

     for(int j = 0; j <= maxIndx; j++) 
     { 
      String q = text[j]; 

      if(q.substring(3).equals("The")) 
      { 
       System.out.println(q); 
      } 
     } 
    } 
} 

내가 더 구문 오류가 있으나 인쇄로 컴파일하기 때문에 내가 잘못 모르겠어요있는 것입니다. 디버깅에

+0

NerdData.txt의 내용은 무엇입니까? 파일에 "The"가 포함되어 있지 않은 것으로 보입니다. –

답변

0

몇 가지 생각 :

  • 당신은 무슨 일이 일어나고 있는지 이해하는 코드를 통해 추가 System.out.println(debug_msg) 문을 작성할 수 있습니다.
  • 이 디버깅 라인을 추가하면 대개 자신의 문제를 해결하는 방법을 알게됩니다.
  • 또한 디버거를 사용할 수 있습니다 (대부분의 IDE에는 하나의 IDE가 함께 제공됩니다). 중단 점을 설정하여 프로그램을 중지하고 코드를 살펴볼 수 있습니다.

코드를 보면 명백한 실수가 없습니다. 무슨 일이 벌어지고 있는지 스스로 이해하고 디버그 할 수 있도록이 디버그 라인을 추가하는 것이 좋습니다.

for(int j = 0; j <= maxIndx; j++) { 
    String q = text[j]; 
    // this will tell you what the contents of the line are 
    System.out.println(q) 

    if(q.substring(3).equals("The")) { 
     System.out.println(q); 
    } 
}