Java sentinel-将文本文件读入数组
我编写了一个Java程序,它将一系列实数从文本文件读入数组。我想使用-1.0作为哨兵,以便扫描仪在文件达到-1.0时停止读取 我正在努力将sentinel插入正确的位置,同时也不确定是否应该使用if或while语句来完成。非常感谢您的帮助:Java sentinel-将文本文件读入数组,java,sentinel,Java,Sentinel,我编写了一个Java程序,它将一系列实数从文本文件读入数组。我想使用-1.0作为哨兵,以便扫描仪在文件达到-1.0时停止读取 我正在努力将sentinel插入正确的位置,同时也不确定是否应该使用if或while语句来完成。非常感谢您的帮助: import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class CalculatingWeights { publ
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class CalculatingWeights {
public static void main(String[] args) throws FileNotFoundException {
//Create file and scanner objects
File inputFile = new File("in.txt");
Scanner in = new Scanner(inputFile);
//declare variables
double [] myArray = new double [100];
int i = 0;
double min = myArray[0];
double max = myArray[0];
//Read numbers from file, add to array and determine min/max values
while(in.hasNextDouble()) {
myArray[i] = in.nextDouble();
if(myArray[i] < min) {
min = myArray[i];
}
if(myArray[i] > max) {
max = myArray[i];
}
i++;
}
//Calculate and print weighting
for(int index = 0; index < myArray.length; index++) {
double num = myArray[index];
double weighting = (num - min) / (max - min);
System.out.printf("%8.4f %4.2f\n", num, weighting);
}
}
}
import java.util.Scanner;
导入java.io.File;
导入java.io.FileNotFoundException;
公共类计算权重{
公共静态void main(字符串[]args)引发FileNotFoundException{
//创建文件和扫描仪对象
File inputFile=新文件(“in.txt”);
扫描仪输入=新扫描仪(输入文件);
//声明变量
double[]myArray=新的双精度[100];
int i=0;
double min=myArray[0];
double max=myArray[0];
//从文件中读取数字,添加到数组并确定最小/最大值
while(在.hasNextDouble()中){
myArray[i]=in.nextDouble();
if(myArray[i]最大值){
max=myArray[i];
}
i++;
}
//计算并打印权重
for(int index=0;index
在不改变大量代码的情况下使用此
double [] myArray = new double [100];
int count = 0;
double min = myArray[0];
double max = myArray[0];
//Read numbers from file, add to array and determine min/max values
while(in.hasNextDouble()) {
myArray[count] = in.nextDouble();
//sentinel
if(myArray[count]==-1.0)
break;
if(myArray[count] < min) {
min = myArray[count];
}
if(myArray[count] > max) {
max = myArray[count];
}
count++;
}
//Calculate and print weighting
for(int index = 0; index < count; index++) {//<-----NOTE HERE: as the array is filled upto "count"
double num = myArray[index];
double weighting = (num - min) / (max - min);
System.out.printf("%8.4f %4.2f\n", num, weighting);
}
double[]myArray=newdouble[100];
整数计数=0;
double min=myArray[0];
double max=myArray[0];
//从文件中读取数字,添加到数组并确定最小/最大值
while(在.hasNextDouble()中){
myArray[count]=in.nextDouble();
//哨兵
如果(myArray[计数]=-1.0)
打破
if(myArray[计数]最大值){
max=myArray[count];
}
计数++;
}
//计算并打印权重
for(int index=0;index