2013-12-10 3 views
0

"Lenore"가 총 단어 수와 함께시에 나오는 횟수를 계산하려고합니다. 13 번 줄에 오류가 나타납니다. 제발 도와주세요. 나는 아주 새롭고 올바르게 코드를 정렬하는 법을 파악할 수없는 것 같습니다.식별자 오류?

package theraven; 

import java.io.*; 
import java.util.Scanner; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class lenore { 

    Scanner myscanner = new Scanner("/Users/karaleamann/Desktop/theraven.txt"); 

    public int countWord(String Lenore, File"/Users/karaleamann/Desktop/theraven.txt") { 
     int count = 0; 
     while (myscanner.hasNextLine()) { 

      String nextToken = myscanner.next(); 

      if (nextToken.equalsIgnoreCase(Lenore)) 
       count++; 
     } 
     return count; 
    } 

    public int countAll() { 
     File file = new File("/Users/karaleamann/Desktop/theraven.txt"); 
     Scanner sc = null; 
     try { 
      sc = new Scanner(new FileInputStream(file)); 

     } catch (FileNotFoundException ex) { 

      Logger.getLogger(lenore.class.getName()).log(Level.SEVERE, null, ex); 
     } 

     int count = 0; 
     while (sc.hasNext()) { 
      sc.next(); 
      count++; 
     } 
     System.out.println("Number of words: " + count); 
     return 0; 

    } 

} 
+0

또한 Lenore를 계산하는 방법을 호출하는 데 문제가있는 것으로 보입니다. 내가 가지고있는 메인에서 : lenore myLenore = new lenore(); myLenore.countWord(); 하지만 나는 무엇을 넣어야할지 모르겠다. – user3085151

답변

0

당신은 자바에서이 작업을 수행 할 수 없습니다

public int countWord(String Lenore, File "/Users/karaleamann/Desktop/theraven.txt") 

을 내가 대신이 의미 믿습니다

public int countWord(String Lenore, File theFile) 

매개 변수 theFile의 실제 값이 제공해야하는 경우 호출 메서드를 매개 변수 선언하는 동안 아닙니다, 그런 식으로 작동하지 않습니다.

2

우선 클래스를 실행하는 데 필요한 Main 메소드가 없습니다. 둘째, countWord 메소드를 잘못된 방식으로 정의합니다.

는 르노 낙타 표기법 패턴 클래스 이름을 변경

, 클래스 이름은 당신은 할 수 없습니다 대문자 첫 글자

public int countWord(String Lenore, File "/Users/karaleamann/Desktop/theraven.txt") 

와 이름이 있어야합니다. 당신은 통과해야 만

it would be something like: 

public int countWord(String lenore, File file){ 
          //^ variables name should be 
          //  in camelCase 
             //^you pass a File variable 
             // to the method. 

매개 변수 그러나 당신이이 방법에 파일을 전달할 필요가없는 클래스에 스캐너를 정의하기 때문에,이 같은 스캐너의 정의 변경해야

new Scanner(new File("/Users/karaleamann/Desktop/theraven.txt")); 

귀하의 방법은 countWord(String lenora)이어야합니다.

두 가지 방법으로 아무것도하지 않습니다. 하나는 스캐너를 사용하지만 결코 호출되지 않았습니다. 그리고 다른 하나는 전혀 발견하지 못하고 있습니다.

귀하의 countAll 방법은 귀하의 솔루션에 가장 근접한 방법이기 때문에 그대로 사용하십시오.

당신은 당신의 프로그램 끄기 물론

public static void main(String [] args){ 
    Lenore l = new Lenore(); 
    l.countAll(); 
} 

즉 이상적인 코드가 아닙니다을 시작하는 다음 메인 메소드를 생성이 부분을

while(sc.hasNext()){ 
    String lineText = sc.next(); 
    if (lineText.indexOf("Lenora")>-1){ 
     count++; 
    } 
} 

을 변경해야합니다. 그것을보다 논리적 인 코드로 발전시켜야합니다. 필요한 경우에만 자원을 작성하여 작업을 분리하십시오. 하지만 지금은 효과가 있습니다.