2017-01-18 1 views
1

단일 값을 입력으로 사용해야하는 메서드가 있지만 배열의 정보 만 있습니다. 필자는 검색 프로그램을 통해 스캐너가 문자열 형식으로 만 값을 스트리밍 할 수 있다는 것을 알았습니다. 그래서 배열을 문자열로 변경 한 다음 값을 반환하기 전에 다시 double로 변환해야한다고 생각했습니다.스캐너를 사용하여 배열에서 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를 반환하는 메도로 스트리밍 값을 공급해야합니다.

이 그것의 간단한 예제의 종류 :

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()과 back보다 더 나쁜 것은 없습니다. 또한 함수는 다시 입력 할 수없고, 아무것도 스트리밍하지 않고 마지막 값을 얻기 위해 전체 배열을 구문 분석합니다. 배열의 마지막 요소에 직접 액세스 할 수 있습니다. –

+0

@AlexanderAnikin 알았어, 이제 알 수있다. 어떤 결과를 얻을 수 있습니까? –

답변

0

@Alexander Anikin은 주석의 질문에 대답했다. Arrays.stream에서 일하고 있지만 API 19가있는 동안 API 24가 필요합니다. 가능한 다른 방법을 찾고 있습니다. 답변 해 주셔서 감사합니다!

0

당신의 목표는 나에게 완전히 명확하지는 않지만, double[] g2 집결지 :

당신은 강화 된 for -loop 사용할 수 있습니다 : 당신이 배열에서 더블을 반환해야하는 경우

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

을, 당신은

return g2[x]; 
를 수행하여 인덱스를 사용하여 검색 할 수 있습니다

여기서 x는 0g2.length - 1 사이의 유효한 인덱스입니다.

0

당신 생각은 맞습니다.

하지만 당신의 결과 E 이중의 배열이어야합니다

double[] E; 
관련 문제