是否可以使用扫描仪从数组中流式传输双精度值?

Is it possible to stream double values from an array using scanner?

我有一个方法需要单个值作为输入,但我只有一个数组中的信息。我搜索并发现 Scanner 可以流式传输值,但只能以字符串形式传输。所以我想我应该将数组更改为字符串,然后在 returning 值之前将其转换回双精度。

这是我写的。

    double E;
    public double StreamValue (double[]g2){
        Scanner s = new Scanner(Arrays.toString(g2)); //PROBLEM HERE
        while (s.hasNext()){
            E = Double.parseDouble(s.next());
        }
        return E;
    }

当我运行代码时,它失败了。我的问题是,这个想法是否正确,但我遗漏了任何部分,或者它完全无效?

已编辑:

我需要将流值输入到一个方法中,该方法将分析每个值和 return 一个整数。

这是一个简短的例子:

 public int EventAnalyzer(double E) {
   if (E > c_max)
      a = 0;
   else
     a = 1;
   return a;
   }
returned 值将用于此方法:

private void isDetected (int a){
        CharSequence t0 = "No breathing";
        CharSequence t1 = "Normal breathing";
        TextView textView = (TextView)findViewById(R.id.apnea);

        if(a==0)
            textView.setText(t0);
        if(a==1)
            textView.setText(t1);
       
    }

你的目标我还不是很清楚,但是 如果你有 double[] g2:

您可以使用增强的 for 循环:

for(double d : g2)
    System.out.println("This is a double from array: "+ d);

如果您需要 return 数组中的一个 double,那么您可以使用索引检索它

return g2[x];

其中 x 是 0g2.length - 1 之间的有效索引。

我觉得,你的想法是对的。

但是你的结果 E 必须是双精度数组:

double[] E;

@Alexander Anikin 在评论中回答了问题。我正在研究 Arrays.stream 但它需要 API 24 而我有 API 19。我正在寻找其他可能的方法。谢谢大家的回复!