• 締切済み

Java trimの設定について

Java trimの設定についてお伺いいたします。 最高気温と最低気温を表示することができずに困っております。trimをどのように設定すれば良いかご教授お願いします。 以下、ソースを記載します。 import java.io.*; public class Sample { public static void main(String[] args) { try{ BufferedReader br = new BufferedReader(new FileReader("kion.txt")); System.out.println("気温データ出力"); int test[] = new int[4]; String str; for(int i=0;i<test.length;i++){ str = br.readLine(); } int max = 0; int min = 0; for(int i=0;i<test.length;i++){ if(max < test[i]) max = test[i]; if(min > test[i]) min = test[i]; System.out.println(test[i]); } System.out.println("最高気温" + max + "です。"); System.out.println("最低気温" + min + "です。"); br.close(); } catch(IOException e){ System.out.println("入出力エラーです"); } } } また「kion.txt]は 東京 30.2 18.5 神奈川 34.2 18.5 埼玉 29.8 16.4 千葉 27.5 14.7 と作成しました。 これを 最高気温 神奈川 34.2 最低気温 千葉  14.7 と表示したいのですが、現在は「0 0 0 0」と表示するだけです。 何卒、よろしくお願い致します。

みんなの回答

回答No.2

>Java trimの設定についてお伺いいたします。 >最高気温と最低気温を表示することができずに困っております。trimをどのように設定すれば良いかご教授お願いします。 >以下、ソースを記載します。 trimの何を質問したいのでしょうか? splitかなにかと勘違いでしょうか・・・

TDKM
質問者

お礼

ご返信、ご助言有難う御座いました。 また、説明足らずで申し訳ないです。 以下、その後ご助言の元再作成し、完成したソースを記載致します。 有難う御座いました。 import java.io.*; public class Sample { public static void main(String[] args) { try{ BufferedReader br = new BufferedReader(new FileReader("kion.txt")); System.out.println("気温データ出力"); int test[] = new int[4]; String str; String max_kion; String min_kion; String max_chimei = ""; String min_chimei = ""; float max,min; float top_max = 0; float top_min = 999.9F; while(true){ str = br.readLine(); if(str == null); break; } chimei = str.substring(0,5); chimei = str.substring(5,9); chimei = str.substring(9,13); max = Float.parseFloat(max_kion); min = Float.parseFloat(min_kion); System.out.println(chimei + " " + max_kion + " " + min_kion); if(max > top_max){ top_max = max; max_chimei = chimei; } if(min < top_min){ top_min = min; min_chimei = chimei; } System.out.println("最高気温" + max_chimei + " " + top_max); System.out.println("最低気温" + min_chimei + " " + top_min); br.close(); } catch(IOException e){ System.out.println("入出力エラーです"); } } }

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.1

そうなるでしょうね。 readLineでファイルを読み込むループではstrに読み込み結果を代入していますが、 それを使う処理のないままループしているのでstrが上書きされるだけです。 test変数への代入をしていないので、配列宣言時の初期値であるゼロが表示されています。 ちょっと手直ししてみました。どうでしょうか。 -------- import java.io.*; public class Sample {   public static void main(String[] args) {     try {       BufferedReader br = new BufferedReader(new FileReader("kion.txt"));       System.out.println("気温データ出力");       int COUNT = 4;       String pref[] = new String[COUNT];       double high[] = new double[COUNT];       double low[] = new double[COUNT];       for(int i = 0 ; i < COUNT ; i++) {         String[] str = br.readLine().split(" ");         pref[i] = str[0];         high[i] = Double.parseDouble(str[1]);         low[i] = Double.parseDouble(str[2]);       }       String maxPref = "";       double maxTemp = Double.NaN;       String minPref = "";       double minTemp = Double.NaN;       for(int i = 0 ; i < COUNT ; i++) {         if(maxTemp < high[i] || Double.isNaN(maxTemp)) {           maxTemp = high[i];           maxPref = pref[i];         }         if(minTemp > low[i] || Double.isNaN(minTemp)) {           minTemp = low[i];           minPref = pref[i];         }       }       System.out.println("最高気温 " + maxPref + " " + maxTemp + " です。");       System.out.println("最低気温 " + minPref + " " + minTemp + " です。");       br.close();     }     catch(IOException e) {       System.out.println("入出力エラーです");     }   } }

TDKM
質問者

お礼

ご返信、ご助言有難う御座いました。 ご助言頂いたソースでNumberformatExceptionエラーが改善されるよう取り組んでいる状況です。 ご助言を元に再度作成したものを、ProKaseifuさんのお礼返信にソースを記載させて頂きました。 有難う御座いました。

関連するQ&A