2010-01-16 5 views
1

제 질문을 읽어 주셔서 감사합니다. 나는 CSV 파일을 가지고 그것을 읽고 변수에 저장한다. 이제 전체 열을 더하기 만하면됩니다. 예Csv Java를 사용하여 계산

3,34 
12,673 
23,8543 


SUM 
------------- 
965,12658 

열과 행 N은 제한 될 수있다. 외모는 분명하지만 잘 모르겠다. 어떤 데이터 구조를 사용해야하는지 알려주세요. 또는이 문제를 해결하기 위해 단계를 말해 줄 수 있다면. 감사합니다.

+0

위의 값을 확인하십시오. 무슨 일이 일어 났는지 모르겠습니다. 그러나 예제에서 csv에는 2 개의 열이 있습니다. – user238384

+0

지금까지 시도한 코드를 표시 할 수 있습니까? 우리는 당신에게 오류를 일으키는 부분을 지적 할 수 있습니다. –

+0

LinkedList 은 과장입니다. 행 수를 고려할 필요가 없습니다. 열 수만 중요합니다. – kgiannakakis

답변

1

도움 주셔서 감사합니다. 나는 그것을 혼자서 해결했다. 2 차원 배열을 사용했습니다. 첫 번째 열을 나타내고 두 번째 열을 나타냅니다. 동적 열 첫 번째 배열을 선언 한 다음 열을 사용하여 값을 저장하고 합계 한 열을 얻습니다. ! !

2

아마도 숙제 일 것이므로 나는 소스 코드를 제공하지 않을 것이다. 선을 읽고 String.split을 사용하여 파싱해야합니다. Integer.parseInt를 사용하여 정수로 변환하십시오. 예외에주의하십시오. N 개의 열이있는 경우 결과를 저장할 N 개의 변수가 있어야합니다. 모든 읽기 후에 변수를 업데이트하십시오.

나는 CSV 읽을이 라이브러리를 사용하는 것이 좋습니다 모든
+0

LOL,이 책은 할당이 아닙니다. 또한 나는 소스 코드를 요구하지 않았다. 네가 내게 힌트를 줄 수 있다면 내가 말했다. 죄송하지만 귀하의 솔루션을 이해하지 못했습니다. CSV 파일을 읽을 수 있습니다. 변수를 모두 저장할 수 있습니다. 그러나 런타임에 열의 N 변수를 선언하는 것은 실제적인 해결책이 아닙니다. 네, 시험에 합격하기 위해 이걸 할 수있는 학교에있을 수도 있습니다.) – user238384

3

첫째 :

CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); 
String [] firstLine = reader.readNext(); 
long sum; 
for (String columnValue : firstLine) { 
    try { 
     sum += Long.parseLong(columnValue); 
    } catch (NumberFormatException e) { 
     throw new RuntimeException(e); 
    } 
} 
System.out.println(sum); 

이 예제는 단지 첫 번째 라인을 읽고,하지만 당신은 할 수 : 당신은 다음처럼 작성할 수있는이 라이브러리를 사용하여 http://opencsv.sourceforge.net/

을 파일의 끝까지 파싱 라인을 유지하려면 while 루프를 작성하십시오.

+0

죄송합니다. 잘못된 URL을 복사했습니다. 나는 그것을 올바른 것으로 바꿨다. Open CSV는 필요한 것입니다. –

+0

감사합니다. 아이디어를 얻는 데 도움이되었습니다. 나는 내 자신의 프로그램을 작성할 수있을 때 opencsv를 사용하지 않는다. :) – user238384

관련 문제