是否可以使用扫描仪从数组中流式传输双精度值?
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 是 0
和 g2.length - 1
之间的有效索引。
我觉得,你的想法是对的。
但是你的结果 E 必须是双精度数组:
double[] E;
@Alexander Anikin 在评论中回答了问题。我正在研究 Arrays.stream 但它需要 API 24 而我有 API 19。我正在寻找其他可能的方法。谢谢大家的回复!
我有一个方法需要单个值作为输入,但我只有一个数组中的信息。我搜索并发现 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;
}
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 是 0
和 g2.length - 1
之间的有效索引。
我觉得,你的想法是对的。
但是你的结果 E 必须是双精度数组:
double[] E;
@Alexander Anikin 在评论中回答了问题。我正在研究 Arrays.stream 但它需要 API 24 而我有 API 19。我正在寻找其他可能的方法。谢谢大家的回复!