我正在尝试添加文本文件的不同行,但是,并非所有行都是双精度(某些行具有特殊字符),我必须将所有双精度值相加。但是,我一直得到这个
错误:预期的类,接口或枚举
用于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;
}
}
}
答案 0 :(得分:1)
首先,我真的建议您使用IDE ,例如IntelliJ IDEA,Eclipse等。它们会帮助您检查语法错误并为您提供非常精确的帮助建议。
正如其他答案所示,您的计划有几个问题。
class
名称的第一个字母应为首都; String
分配给Double
; 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;
}
}
}
答案 1 :(得分:0)
您的isDouble(String cu)
方法不在班级内:
catch(Exception e){}
} //closing brace for main method
} //closing brace for the class
public static boolean isDouble(String cu){
请确保在此方法后平衡括号。
答案 2 :(得分:0)
这将解决您的问题
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 = null;
while((currentLine = br.readLine()) != null){
if(isDouble(currentLine)){
double temp = Double.parseDouble(currentLine);
answer = Double.parseDouble(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;
}
}
}