Java 标识符错误?

Java 标识符错误?,java,Java,我试图计算“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 Scann

我试图计算“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;

    }

}

在Java中无法执行此操作:

public int countWord(String Lenore, File "/Users/karaleamann/Desktop/theraven.txt")
我相信你的意思是:

public int countWord(String Lenore, File theFile)

调用方法时必须提供文件中参数的实际值,而不是在参数声明期间,这样做是行不通的。

首先,您没有执行类所需的主方法。其次,以无效的方式定义方法countWord

将您的类名更改为Lenore camelCase模式,类名应具有大写首字母的名称

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
应该是
countWord(字符串lenora)

你有两种方法什么都不做。一个正在使用扫描仪,但从未调用过。另一个你什么也找不到

您的
countAll
方法是最接近您的解决方案的方法,因此让我们继续使用它

你应该改变这部分

 while(sc.hasNext()){
     String lineText = sc.next();
     if ( lineText.indexOf("Lenora")>-1 ){
      count++;   
     }
 }
然后创建一个主方法来启动程序

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

当然,这不是理想的代码。您必须将其演变为更具逻辑性的代码。分离任务,仅根据需要创建资源。但是它现在应该可以工作。

调用计算Lenore的方法似乎也有问题。大体上我有:lenore myLenore=新lenore();myLenore.countWord();但我不知道该在()中放什么?