在Java中尝试使用hasNext时数组出错
我有一组特殊的代码,它将从一个文件(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
有没有人能告诉我为什么会这样?我真的不知道
# 1 楼答案
File
类没有hasNext()
方法。也许您想使用File
创建一个Scanner
。{a1}方法# 2 楼答案
你的时间不应该以一个小时结束
# 3 楼答案
您想在
br
上调用readLine()
,而不是在lesFil
上调用hasNext()
。文件不是迭代器;逐行读取是创建BufferedReader
的原因。如果你想要一个hasNext()
,像其他人说的那样创建一个Scanner
# 4 楼答案
hasNext()
是^{它不存在于
File
中您希望创建一个
new Scanner(lesFil)
并使用它你也不需要你的两个读者