有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在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

有没有人能告诉我为什么会这样?我真的不知道


共 (4) 个答案

  1. # 1 楼答案

    File类没有hasNext()方法。也许您想使用File创建一个Scanner。{a1}方法

    Scanner scanner = new Scanner(lesFil);
    
  2. # 2 楼答案

    你的时间不应该以一个小时结束

  3. # 3 楼答案

    您想在br上调用readLine(),而不是在lesFil上调用hasNext()。文件不是迭代器;逐行读取是创建BufferedReader的原因。如果你想要一个hasNext(),像其他人说的那样创建一个Scanner

  4. # 4 楼答案

    hasNext()^{} class中的一个方法,它将流解析为令牌
    它不存在于File

    您希望创建一个new Scanner(lesFil)并使用它

    你也不需要你的两个读者