这是我的代码:
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class QuestionTwo
{
public static void main(String[] args) throws FileNotFoundException
{
System.out.println("Please enter a file name");
Scanner keyboard = new Scanner(System.in);
double average;
double numbertocheck;
int length;
String filename = keyboard.next();
Scanner reader = new Scanner (new File(filename));
length = reader.nextInt();
//Here is where I would put the statement that says "File is not found, enter the filename again"
System.out.println("The number to check: ");
numbertocheck = keyboard.nextDouble();
if (length > numbertocheck)
{
//here is where I would put the average calculation
System.out.println("The average of the numbers that are greater than" + numbertocheck + "is " /**+ average*/);
}
}
}
文本文件如下:
30
44
23
56
43
2
32
35
90
12
我的输出一无所获;它简单地问了两个问题并画了一个空白(甚至在我把一堆东西写成评论之前)。此代码试图回答这个问题:
"编写一个程序,要求用户输入包含一组整数值的文件名,然后要求用户输入整数。
程序应显示数字的平均值 大于输入数字。使用记事本或其他文本编辑器创建一个可用于测试程序的简单文件。
首先,用户输入文件名如下: 输入文件名:input.txt 例如,如果文件'input.txt'包含以下数字:
30
44
23
56
43
2
32
35
90
12
然后,如果用户输入整数,则为:
The number to check: 40
程序应将输出显示为:
The average of the numbers that are greater than 40 is 58.25
请注意,数字44,56,43和90的平均值为233/4 = 58.25。平均值必须显示最多两位小数。
如果未找到输入文件,则必须提示用户再次输入文件名,并显示以下消息
“File is not found, enter the filename again”.
然后会再次提示问题,直到找到有效的文件。"
在解析文本文件并找到大于所要求值的数字的平均值时,问题出现了。然后循环问题,要求用户输入文件名,然后重复该问题,直到找到文件。我曾想过使用Decimal格式类,但不知道如何正确使用它。任何帮助将不胜感激!
答案 0 :(得分:2)
我的第一个评论是你可能想要上一些课。这是非常基本的东西。
但要回答你的问题,请使用while循环,其中包含if / else语句,以获得正确的输入。
对于下一个问题,您可能希望使用.nextLine而不是.next,因为某些文件名中包含空格。
第三个问题,使用for循环一次检查一个整数,并将其与所需范围进行比较。然后使用if / if else语句/ switch语句和一个数组来存储值,并在检查完所有值之后,对数组的内容进行数学运算。
同样,我强烈建议您参加一些基础的Java课程。