タイトルの通りなのですが、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の中身の各行の合計値を算出するもので、これを元に各行の最大値を算出したいのですが、どうしても比較演算子を使用しての算出がうまくいきません。
どなたかプログラムに詳しい方がいましたら、ご教授いただけると助かります。
つたない文章ですがよろしくお願いします。
No.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);
でいいかな
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Class.forNameでエラーになる
-
[JAVA]エラーが解決できません。
-
Java int sum = 0は必要ですか?
-
テキストファイルから空白行をよむ
-
yyyymmddからyyyy/mm/d...
-
javaでCSVの中身から最大値を表...
-
javaのfor文が機能してないみた...
-
Javaでデータに登録する度にID...
-
テキストファイルにおいて任意...
-
プログラムのコードとLIBSVM形式
-
csv出力について
-
equalsの逆
-
Javaの質問です。テキストファ...
-
九九を横に表示する。
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
変数を動的に利用するには?
-
1~100までの数字を表示し、か...
-
flush()とclose()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
InputStream.read()でタイムア...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
javaのfor文が機能してないみた...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
以下のJAVAプログラムでご質問...
-
Class.forNameでエラーになる
-
ソケットを使ったサーバとクラ...
-
テキストファイルにおいて任意...
-
JAVAでエラーがでる。
-
テキストファイルの任意の文字...
-
Web上に表示されたデータをcsv...
-
Inputstreamについて
-
[JAVA]エラーが解決できません。
-
Windowsでの標準入力の終了の仕方
おすすめ情報