2017-01-18 5 views
1

私は入力として単一の値を必要とするメソッドを持っていますが、配列内の情報しか持っていません。私は検索して、スキャナが値をストリームできることを知っていましたが、文字列形式でしか見つかりませんでした。だから私は文字列に配列を変更し、値を返す前にそれをダブルに変換する必要があると思った。scannerを使用して配列からdouble値をストリームすることはできますか?

これは私が書いたものです。

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; 
    } 

コードを実行すると失敗しました。私の質問は、アイデアが正しいのですが、私は一部を欠いている、または完全に無効ですか?

編集は:

私はそれぞれの値を分析し、int型を返しますMethodeのにストリーミング値を供給する必要があります。

これはそれの短い例のようなものです:

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); 
 
     
 
    }

+0

達成しようとしていることを指定できますか? – Bambino

+0

これは完全に無効です。 toString()とそれ以上の悪はありません。また、あなたの関数は再入可能ではなく、何もストリーミングせず、最後の値を取得するために配列全体を解析しますが、配列の最後の要素に直接アクセスできます。 –

+0

@AlexanderAnikin大丈夫、私は今それを見ることができます。私は必要な結果を得ることができますか? –

答えて

0

@Alexander Anikinはコメントで質問に答えていました。私はArrays.streamに取り組んでいますが、私はAPI 19を持っている間にAPI 24が必要です。私は可能な他の方法を探しています。皆さん、ありがとうございました!

0

あなたの目標があります完全に私には明確ではないが、 double[] g2 AVE:

あなたは強化さfor -loopを使用することができます。

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

あなたは配列から1つのdoubleを返す必要があれば、あなたは

return g2[x]; 
を行うことによって、インデックスを使用して、それを取得することができます

ここで、xは0g2.length - 1の間の有効なインデックスです。

0

あなたの考えは正しいと思います。

しかし、あなたの結果Eは、二重の配列でなければなりません:

double[] E; 
関連する問題