gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:28:32 25 4
gpt4 key购买 nike

我正在尝试将文本文件的不同行相加,但是,并非所有行都是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com