Java 标识符错误?
我试图计算“Lenore”在诗中出现的次数以及总字数。我在第13行发现了错误,请帮忙。我是个新手,似乎无法掌握如何正确地排序代码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
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();但我不知道该在()中放什么?