2017-06-28 12 views
-1

私のプログラムでは、ユーザが「停止」と入力してから結果が表示されるまで繰り返し一致結果を入力できます。私は私の 'stats [2]' arraylistで最も高い入力値を見つける必要があります。これは 'hometeam score'です。 "マンチェスターシティ:マンチェスターユナイテッド:2:1 ... チェルシー:アーセナル:0:1 ... エバートン:リバプール:1:1"と入力すると、その配列の中で最も高い値です。それが意味をなさえすれば?私はそれが表示される必要がある場所の下に行を設定しました。それを介してarrylist要素の最大/最小値の検索

public static void main(String args[]) { 

    Scanner sc = new Scanner(System.in); 
    ArrayList<String[]> stats = new ArrayList<>(); // initialize a container 
                // to hold all the stats 
    System.out.println("please enter match results:"); 

    int matchesPlayed = 0; 
    int invalidEntry = 0; 

    while (sc.hasNextLine()) { 

     String input = sc.nextLine(); 
     String[] results = input.split("\\s*:\\s*"); 

     if (results.length == 4) { 
      stats.add(results); 
      matchesPlayed++; 
     } 

     else if (input.equals("stop")) { 
      break; 
     } 

    } // end of while 

    for (int i = 0; i < stats.size(); i++) { 

     if (stats.get(i)[0].trim().isEmpty()) { 
      System.out 
        .println("no home team name entered on the following line:"); 
      invalidEntry++; 
      matchesPlayed--; 
     } 

     else if (stats.get(i)[1].trim().isEmpty()) { 
      System.out 
        .println("no away team name entered on the following line:"); 
      invalidEntry++; 
      matchesPlayed--; 
     } 

     else if (stats.get(i)[2].trim().isEmpty()) { 
      System.out.println("no home score entered on this line"); 
      invalidEntry++; 
      matchesPlayed--; 

     } 

     else if (stats.get(i)[3].trim().isEmpty()) { 
      System.out.println("no away score entered on this line"); 
      invalidEntry++; 
      matchesPlayed--; 
     } 

     try { 
      System.out.println(String.valueOf(stats.get(i)[0]) + " [" 
        + Integer.valueOf(stats.get(i)[2]) + "] " + " | " 
        + (String.valueOf(stats.get(i)[1]) 

        + " [" + Integer.valueOf(stats.get(i)[3]) + "] ")); 

     } catch (Exception e) { 
      // do nothing with any invalid input 
     } 

    } 
    System.out.println(" "); 
    System.out.println("Totals"); 
    System.out.println("-------------------------"); 
    System.out.println("total number of matches: " + matchesPlayed); 
    System.out.println("total number of invalid entries: " + invalidEntry); 
    System.out.println("highest home score: "); 
} 
+0

"それは意味をなさない"以外の質問はしませんでした。あなたの質問は何ですか? – Kon

+0

私の質問は、私のarraylistの[2]要素に入力された最も高い数字を見つけてintに格納する方法です。 – JHurst

+0

あなたの "質問"はそれを行うための料理本のように見えます。あなたが描いているようにそれをやってみませんか?またはint値を比較する方法の質問ですか? – Heri

答えて

0

だけループは、最初の要素に等しい変数設定し、ループの場合と変数の値を変更し、現在の変数よりも高い元素がある場合。最後に変数を出力してください

+0

コードでどのように表示されるかの例を教えていただけますか?申し訳ありませんが、私はJavaの初心者です – JHurst

+0

@JHurst https://stackoverflow.com/a/1806830/5338668 –

+0

ありがとうございます! – JHurst

関連する問題