2013-02-12 3 views
0

저는 arraylist가 10 진수로 이루어져 있고이 arraylist의 마지막 4 개 원소의 평균을 취하기로되어 있습니다. 그리고이 유리수는 String 유형입니다.문자열 유형의 arraylist 요소를 요약하는 방법은 무엇입니까?

개인 무효 평균 (문자열 신뢰) {

if(myList.size() >= 4) { 

    String t = myList.get(myList.size()-1); 
    String d = myList.get(myList.size()-2); 
    String f = myList.get(myList.size()-3); 
    String h = myList.get(myList.size()-4);  

    String s = (t + d + f+h) ; 
    long fin = Long.parseLong(s); 
    long result = fin/4 ; 
    System.out.println("Average is: "+result); 
    } 

그러나이 방법을 사용하면 내가 어떻게해야 또는이 일을 어떤 조언을하고 변화의 종류를 말씀 해주십시오 work.Could하지 않는 이유는 무엇입니까? 많은 감사드립니다!!!

답변

0

을 (를)에 추가하기 전에 변환해야합니다. 문자열상의 +은 연결됨을 의미합니다.

if(myList.size() >= 4) { 

    //I'm guessing all of these conf.size() calls are meant to be myList.size() 
    double t = Double.parseDouble(myList.get(conf.size()-1)); 
    double d = Double.pareseDouble(myList.get(conf.size()-2)); 
    double f = Double.parseDouble(myList.get(conf.size()-3)); 
    double h = Double.parseDoublemyList.get(conf.size()-4)); 

    double s = (t + d + f+h) ; 
    double result = s/3 ; //should be 4 
    System.out.println("meanAsrConfidence is: "+result); 
    } 

당신은 예를 들어, 지금 뭐하는거야 : 또한

t=1, d=2, f=3, h=4 
s = 1234 

:

  1. 당신이 4 분할해야, 3
  2. conf이 무엇을하지? 왜 myList.size()에 전화하지 않으십니까? 당신은 아마 myList
+0

나는 문자열을 t, d, f, h로 변환하기 전에 길게 변환했으나 여전히 잘못된 ??? ??? !!! – user2052015

+0

지금 어떤 방식으로 잘못 되었습니까? – Colleen

+0

나는 내 질문을 편집했고 내가 말한대로 잘못된 부분을 바꿨다. 이 모든 수는 7,6 4,5 4,2 0,1과 같은 유리수입니다. – user2052015

0

문제가 String s = (t + d + f+h) 부분 통과 할 할 때

  • 당신은 인수로 문자열을 전달하고 있습니다. 지금 바로 4 개의 문자열을 추가하고 있습니다. 먼저 변환해야합니다.

    그리고 당신의 결과가 잘못 될 것입니다, 당신은 그래서 당신이 유형을 변경해야으로 무엇을 Long.parseLong() 반환을 반영하지 3.

  • +0

    나는 그 변화를 만들었고, 하나 더 많은 정보가이 숫자들 모두 합리적인 숫자이다. 그리고 비록 내가 처음에 문자열을 길게 변환하고 나서 그것들을 요약 해 봤더니, 그것은 작동하지 않았다. – user2052015

    0

    콜린의 대답은 좋은, 4 분할해야합니다. 나는 대답 할 것이지만 너무 새롭다.

    if(myList.size() >= 4) { 
    
        Double t = Double.parseLong(myList.get(conf.size()-1)); 
        Double d = Double.pareseLong(myList.get(conf.size()-2)); 
        Double f = Double.parseLong(myList.get(conf.size()-3)); 
        Double h = Double.parseLong(myList.get(conf.size()-4)); 
    
        Double result = (t + d + f + h)/3 ; 
    
        System.out.println("meanAsrConfidence is: "+result); 
    } 
    
    +0

    , 고마워! 나는 잠시 동안 자바를 사용하지 않았기 때문에 특정 API 정보를 기억하지 못합니다. – Colleen

    +0

    aaaand 나는 또한 실제로 당신이 실제로 언급했던 오타가 있었고 나는 지금까지 그것을 잡을 수 없었다. – Colleen

    +0

    나는 우리가 더 많은 정보를 필요로 할 것이라고 확신한다. @ user2052015 : 작동하지 않는 것은 무엇입니까? 원하는 출력, 입력 및 잘못된 출력은 무엇입니까? "0.98"java.lang.NumberFormatException.forInputString에서 \t (알 수없는 소스) java.lang.Long.parseLong에서 \t (알 수없는 소스) : java.lang.NumberFormatException의 : 입력 문자열에 대한 – omgz0r

    관련 문제