プロが教えるわが家の防犯対策術!

タイトルの通りなのですが、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の中身の各行の合計値を算出するもので、これを元に各行の最大値を算出したいのですが、どうしても比較演算子を使用しての算出がうまくいきません。
どなたかプログラムに詳しい方がいましたら、ご教授いただけると助かります。
つたない文章ですがよろしくお願いします。

A 回答 (1件)

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

でいいかな
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!