Java 如何从txt文件执行代码
我需要使用Java 如何从txt文件执行代码,java,Java,我需要使用.txt文件从文本文件执行以下代码。我在文件中使用扫描仪时遇到问题b.txt中有以下文本输入: 40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9 有人能帮我解决这个问题吗 import java.util.*; public class arrayLabFirst { public static void main(String[] args) { double[ ] temperatures = new doub
.txt
文件从文本文件执行以下代码。我在文件中使用扫描仪时遇到问题b.txt
中有以下文本输入:
40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9 有人能帮我解决这个问题吗
import java.util.*;
public class arrayLabFirst
{
public static void main(String[] args)
{
double[ ] temperatures = new double[10];
Scanner inFile = new Scanner(new File(“b.txt”));
temeratures[]=infile.hasNext();
for (int index = 0; index < temperatures.length; index++)
temperatures[index] = input.nextDouble();
printArray(temperatures);
System.out.println("The average of the temperatures entered is: " + arrayAverage(temperatures));
System.out.println("The greatest temperature is: " + greatest(temperatures));
System.out.println("The lowest temperature is: " + lowest(temperatures));
}
public static void printArray(double[] temperatures)
{
for (int i = 0; i < temperatures.length; i++)
System.out.println(temperatures[i]);
}
public static double arrayAverage(double[] temperatures)
{
double sum = 0;
for (int i = 0; i < temperatures.length; i++)
sum += temperatures[i];
return sum/temperatures.length;
}
public static void countDays(double[] temperatures)
{
int aboveCount = 0;
int belowCount = 0;
for (int i = 0; i < temperatures.length; i++)
{
if (i > 32)
aboveCount++;
else
belowCount++;
}
System.out.println("number of days above freezing: " + aboveCount);
System.out.println("number of days below freezing: " + belowCount);
}
public static double greatest(double[] temperatures)
{
int maxIndex = 0;
for (int index = 1; index < temperatures.length; index++)
if (temperatures[maxIndex] < temperatures[index])
maxIndex = index;
return temperatures[maxIndex];
}
public static double lowest(double[] temperatures)
{
int minIndex = 0;
for (int index = 1; index < temperatures.length; index++)
if (temperatures[minIndex] > temperatures[index])
minIndex = index;
return temperatures[minIndex];
}
}
import java.util.*;
公共类arrayLabFirst
{
公共静态void main(字符串[]args)
{
双[]温度=新双[10];
扫描仪内嵌=新扫描仪(新文件(“b.txt”);
temeratures[]=infle.hasNext();
对于(int index=0;index32)
计数++;
其他的
低于计数++;
}
System.out.println(“冻结以上天数:+计数以上”);
System.out.println(“冻结以下天数:+低于计数”);
}
公共静态双最高温度(双[]温度)
{
int maxIndex=0;
对于(int index=1;index温度[index])
minIndex=指数;
返回温度[minIndex];
}
}
我并不真正理解所有的负面影响,但让我快速解释一下他们在说什么。您在infle上使用的是hasNext()方法,该方法返回一个关于is是否具有“next”值的布尔值。在本例中,它检查是否有下一个双精度。问题是您为该布尔值分配了一个双精度数组,而这是无法做到的
下面是我的工作,使用你的代码
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
public class arrayLabFirst
{
public static void main(String[] args) throws FileNotFoundException
{
double[ ] temperatures = new double[10];
Scanner inFile = new Scanner(new File("data.txt"));
for (int index = 0; index < temperatures.length; index++)
if(inFile.hasNext())
temperatures[index] = inFile.nextDouble();
else
continue;
printArray(temperatures);
System.out.println("The average of the temperatures entered is: " + arrayAverage(temperatures));
System.out.println("The greatest temperature is: " + greatest(temperatures));
System.out.println("The lowest temperature is: " + lowest(temperatures));
inFile.close();
}
public static void printArray(double[] temperatures)
{
System.out.print("Input Array:\n[");
for (int i = 0; i < temperatures.length; i++)
{
System.out.print(temperatures[i]);
if(i < temperatures.length - 1)
{
System.out.print(", ");
}
}
System.out.println("]\n");
}
public static double arrayAverage(double[] temperatures)
{
double sum = 0;
for (int i = 0; i < temperatures.length; i++)
sum += temperatures[i];
return sum/temperatures.length;
}
public static void countDays(double[] temperatures)
{
int aboveCount = 0;
int belowCount = 0;
for (int i = 0; i < temperatures.length; i++)
{
if (i > 32)
aboveCount++;
else
belowCount++;
}
System.out.println("number of days above freezing: " + aboveCount);
System.out.println("number of days below freezing: " + belowCount);
}
public static double greatest(double[] temperatures)
{
int maxIndex = 0;
for (int index = 1; index < temperatures.length; index++)
if (temperatures[maxIndex] < temperatures[index])
maxIndex = index;
return temperatures[maxIndex];
}
public static double lowest(double[] temperatures)
{
int minIndex = 0;
for (int index = 1; index < temperatures.length; index++)
if (temperatures[minIndex] > temperatures[index])
minIndex = index;
return temperatures[minIndex];
}
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.*;
公共类arrayLabFirst
{
公共静态void main(字符串[]args)引发FileNotFoundException
{
双[]温度=新双[10];
扫描仪内嵌=新扫描仪(新文件(“data.txt”);
对于(int index=0;index32)
计数++;
其他的
低于计数++;
}
System.out.println(“冻结以上天数:+计数以上”);
System.out.println(“冻结以下天数:+低于计数”);
}
公共静态双最高温度(双[]温度)
{
int maxIndex=0;
对于(int index=1;index温度[index])
minIndex=指数;
返回温度[minIndex];
}
}
您需要从文本文件中读取文本,然后才能执行。但在此之前,请先显示文本文件的示例。为什么您认为temeratures[]=infle.hasNext()代码>可以工作吗?40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9这段代码甚至可以编译吗?40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9<这是我的示例文件。我认为temerations[]=infle.hasNext();应该可以,因为我使用infle.hasNext()打印数组的内容。