こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaでCSVの中身から最大値を表示したい

タイトルの通りなのですが、javaのプログラムでCSVの中の少数を読み込み、そこから最大値を表示したいのです。
CSVの中身は

10.1,20.2,30.3,40.4,50.4
100.1,200.2,300.3,400.4

という半角の少数がカンマで区切られた状態になっています。

import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;


public class test {

public static void main(String args[]) throws NumberFormatException, IOException{
System.out.println("csvのファイル名を入力");
Scanner sc = new Scanner(System.in);
String str = sc.next();

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(str)));
String line;
while((line=br.readLine())!=null){
String[] sp = line.split(",");
double sum=0;//合計値格納用
for(int i=0;i<sp.length;i++){
sum += Double.parseDouble(sp[i]);
}
System.out.println(line+"の合計値は"+sum);
}
br.close();
}
}

上記のプログラムは、CSVの中身の各行の合計値を算出するもので、これを元に各行の最大値を算出したいのですが、どうしても比較演算子を使用しての算出がうまくいきません。
どなたかプログラムに詳しい方がいましたら、ご教授いただけると助かります。
つたない文章ですがよろしくお願いします。

投稿日時 - 2013-07-25 23:17:47

QNo.8192045

困ってます

質問者が選んだベストアンサー

double sum=0;//合計値格納用
double min,max;
for(int i=0;i<sp.length;i++){
sum += Double.parseDouble(sp[i]);
if(i == 0 || Double.parseDouble(sp[i]) < min)
min = Double.parseDouble(sp[i]);
if(i == 0 || Double.parseDouble(sp[i]) > max)
max = Double.parseDouble(sp[i]);
}
System.out.println(line+"の合計値は"+sum);
System.out.println(line+"の最小値は"+min);
System.out.println(line+"の最大値は"+max);

でいいかな

投稿日時 - 2013-07-25 23:32:59

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問