关于eclipse控制台输入一组数据问题

import java.util.Scanner;

import edu.princeton.cs.algs4.Bag;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;

public class Test {
public static void main(String args[])
{

        Bag<Double> numbers = new Bag<Double>();
        // 由控制台输入一组double类型的数,添加到包numbers中。
        while (!StdIn.isEmpty()) {
            numbers.add(StdIn.readDouble());
        }

        int N = numbers.size();
        // 求均值
        double sum = 0.0;
        for (double x : numbers)
            sum += x;
        double mean = sum / N;

        // 求方差
        sum = 0.0;
        for (double x : numbers)
            sum += Math.pow((x - mean), 2);
        double std = Math.sqrt(sum / (N - 1));

        StdOut.print("mean is: " + mean);
        StdOut.print("\nstd is: " + std);
    }

}
如上代码,我想问的是在控制台输入了一组数据怎么得出结果,一直都是输入的过程,按回车也是继续输入数据,怎么停止输入到背包中计算结果啊?

我感觉你可以在程序中设定单个字符或者作为标记,当程序检测到你输入的是结束字符的时候自动跳出。

按下 ctrl+z 终止输入,程序里判断是否遇到 EOF 字符。

 import edu.princeton.cs.algs4.StdIn;
 import edu.princeton.cs.algs4.StdOut;

使用的是第三方库,有几个方案:
1 研究第三方库中isEmpty,readDouble等函数的实现,看看有没有什么方式结束输入
2 在输入循环中自行设定退出条件,比如限定循环次数,或者当接收到特定输入时退出
3 换用标准库的输入方式,可以百度 "java Scanner ",很多例子,这种方式ctrl+z应该可行。

如果对您有帮助,请采纳答案好吗,谢谢!