Java sentinel-将文本文件读入数组

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

我编写了一个Java程序,它将一系列实数从文本文件读入数组。我想使用-1.0作为哨兵,以便扫描仪在文件达到-1.0时停止读取

我正在努力将sentinel插入正确的位置,同时也不确定是否应该使用if或while语句来完成。非常感谢您的帮助:

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