我有一组特定的代码,它将从文件(Alice.txt)中读取文本,然后将每个单词放入一个数组中,并单独计算单词和单词的总数。
我有一些东西的草稿,但阻止我朝着我的目标迈进是我得到的错误。首先,代码:
import java.util.*;
import java.io.*;
public class Oblig3A{
public static void main(String[]args){
OrdAnalyse O = new OrdAnalyse();
OrdAnalyse.analyseMet();
}
}
class OrdAnalyse {
public static void analyseMet() {
Scanner Inn = new Scanner(System.in);
System.out.println("Vennligst oppgi navn til lagringsfilen: ");
String Filen;
Filen = Inn.nextLine();
try {
File skrivFil = new File(Filen);
FileWriter fw= new FileWriter(skrivFil);
BufferedWriter bw = new BufferedWriter(fw);
File lesFil = new File ("Alice.txt");
FileReader fr = new FileReader(lesFil);
BufferedReader br = new BufferedReader(fr);
int teller=0;
int i=0;
while(lesFil.hasNext()){
teller++;
lesFil.next();
}
String[] ordArray = new String[teller];
int[] antall = new int[teller]
do{
ordArray[i]=lesFil.next();
}
while(lesFil.hasNext());
System.out.println(ordArray.length);
}catch (Exception e){
System.out.print(e);
}
}
}
我收到了这个错误:
Oblig3A.java:29: error: cannot find symbol
while(lesFil.hasNext()){
^
symbol: method hasNext()
location: variable lesFil of type File
有没有人可以给我一个指针,说明为什么会这样?我真的不知道。
答案 0 :(得分:3)
答案 1 :(得分:2)
File
类没有hasNext()
方法。也许您想使用Scanner
创建File
。 Scanner
class has a hasNext()
方法。
Scanner scanner = new Scanner(lesFil);
答案 2 :(得分:0)
您想要readLine()
上的br
,而hasNext()
上的lesFil
。文件不是迭代器;逐行阅读是您创建BufferedReader
的原因。如果您想要hasNext()
,请像其他人一样创建Scanner
。
答案 3 :(得分:0)
你的时间不应该以a结尾;