java - 需要 FileReader 类、接口(interface)或枚举

标签 java filereader

我正在尝试将文本文件的不同行相加,但是,并非所有行都是 double (某些行具有特殊字符),我必须将所有 double 值相加。然而,我不断收到这个

ERROR:class, interface, or enum expected

对于 isDouble 方法。任何帮助将不胜感激!

import java.util.*;
import java.io.*;

public class quiz4
{
    public static void main(String[] args)
    {
        File input = new File("mystery.txt");
        try
        {
            double answer = 0;
            FileReader fr = new FileReader(input);
            BufferedReader br = new BufferedReader(fr);
            String currentLine = br.readLine();
            while (currentLine != null)
            {
                currentLine = br.readLine();
                if (isDouble(currentLine))
                {
                    double temp = Double.parseDouble(currentLine);
                    answer = currentLine + temp;
                }
                else
                {
                    continue;
                }
            }
        }
        catch (Exception e)
        {
        }
    }

    public static boolean isDouble(String cu)
    {
        try
        {
            double value = Double.parseDouble(cu);
            return true;
        }
        catch (NumberFormatException e)
        {
            return false;
       }
    }
}

最佳答案

首先,我真的建议您使用像IntelliJ IDEA这样的IDE , Eclipse等等。他们会帮助您检查语法错误并为您提供非常精确的建议。

正如其他答案所示,您的程序有几个问题。

  1. 您的名称的第一个字母应该大写;
  2. 您不能将 String 分配给 Double
  3. 由于大括号不平衡,您的 isDouble 方法位于类的外部

以下代码应该可以解决您的问题。

    public class Quiz4 {
        public static void main(String[] args) {
            File input = new File("mystery.txt");
            try {
                double answer = 0;
                FileReader fr = new FileReader(input);
                BufferedReader br = new BufferedReader(fr);
                String currentLine = br.readLine();
                while (currentLine != null) {
                    currentLine = br.readLine();
                    Double curDouble = tryParseDouble(currentLine);
                    if (curDouble != null) {
                        answer += curDouble;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        public static Double tryParseDouble(String str) {
            try {
                return Double.parseDouble(str);
            } catch (Exception e) {
                return null;
            }

        }
    }

关于java - 需要 FileReader 类、接口(interface)或枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36490768/

相关文章:

java - 当使用不带参数的 lambda 时,Sonarqube Java 分析器在代码分析期间抛出 NullPointerException

java - 拼写数字到数字?

javascript - Angular2 + Typescript + FileReader.onLoad = 属性不存在

javascript - 如何用 Jest 来模拟 FileReader?

java - 通过java bean显示html字符

java - 编写简单语言的解析器

java - Vaadin 14 为同一类型的元素添加不同的样式?

javascript - 在 JavaScript FileReader API 中传递现有服务器文件

Java 文件读取器找不到合适的文件

javascript - AngularJS:有没有办法获取文件的大小?