2017-10-10 19 views
1

私は、その入力にチーム名とスコアが1つのスペースで区切られた文字列入力を持っています。例えばbb 3teamd 5勝者は、私は以下のやっている最高のスコアを獲得し、勝者チームを得るためにteamd特定の文字を表示する

次のようになります。

Scanner scanner = new Scanner(System.in); 
    int cases = scanner.nextInt(); 

    printWinnerTeam(cases); 



} 

public static void printWinnerTeam(int cases) { 
    Scanner scanner = new Scanner(System.in); 
    String str = ""; 
    String winnerTeam = ""; 
    int winnerScore = 0, countedChar = 0; 

    for (int i = 0; i < cases; i++) { 
     str += scanner.nextLine(); 
    } 
    char[] arr = str.toCharArray(); 
    for (int i = 0; i < arr.length; i++) { 
     countedChar++; 
     if (arr[i] == ' ') { 
      if (str.charAt(i + 1) > winnerScore) { 
       winnerTeam = ""; 
       winnerScore = (int) str.charAt((int) i + 1); 
       for (int j = 0; j < countedChar; j++) { 
        winnerTeam += str.charAt(j); 
       } 
       countedChar = 0; 
      } else { 
       //winnerTeam = ""; 
       countedChar = 0; 
      } 
     } 
    } 
    System.out.println(winnerTeam); 
} 

をしかし、それは知事に動作していない、それはプリント配線した結果、どのようですその仕事を期待どおりにするには?

+0

どのようにそれを簡素化するが、あなたが行くようにちょうどの処理について。入力されたラインのスコアが最大の場合は、番号とチーム名を格納します - String.split( "、"); –

+1

私はあなたのコードを試していないが、大きな問題は 'str + = scanner.nextLine();の連結であると思います。新しい行は前の行' number'の最後にまっすぐに追加されます –

+0

@ScaryWombat確かにはい、私は '+ ='、感謝の気持ちで答えを受け入れるように気をつけてください。 – user1058652

答えて

1

私はあなたのコードを試していませんが、しかし、私は大きな問題は、新しい行が前の行番号

の終わりにまっすぐ追加されようとしているstr += scanner.nextLine();の連結はこれを見て持っている想像

Scanner sc = new Scanner(System.in); 
    int bestScore = Integer.MIN_VALUE; 
    String team = "Nothing entered"; 
    System.out.println("how many teams"); 
    int count = sc.nextInt(); 
    sc.nextLine(); 
    while (count-- > 0) { 
     System.out.println("Entered team,score"); 

     String line = sc.nextLine(); 
     String arr [] = line.split(" "); 
     // check size - TBD 
     if (Integer.parseInt(arr[1]) > bestScore) { 
      bestScore = Integer.parseInt(arr[1]); 
      team = arr[0]; 
     } 
    } 

    System.out.println("nest team is " + team + " with a score of " + bestScore); 
+1

@AndyTurnerありがとう、私の画面をきれいにする必要があります –

+0

すみません、あなたは何ですか?間違って[ここ](https://ideone.com/tB1Akw)、私のコードでrunTimeErrorを取得するには? Eclipseで私のために正常に動作します@android – user1058652

+0

'どのように多くの場合、2 どのように多くのチーム進出チーム、 私23 私 どのように多くのチーム入力したチームが得点、 test1の2 入力したチームが得点、得点 test2は4 進出チーム、 me_again 23 me_againスコア 私 me_again ' –

0

私はこのようにそれを行うだろうというような何かを持っている場合:

import java.util.*; 
     public class winner { 
      public static void main (String args []) { 
      Scanner scanner = new Scanner(System.in); 
      int cases = scanner.nextInt(); 

      printWinnerTeam(cases); 
     } 

    public static void printWinnerTeam(int cases) { 
      Scanner scanner = new Scanner(System.in); 
      String winnerTeam = ""; 
      String Team=""; 
      int winnerScore = 0, score = 0; 

      for (int i = 0; i < cases; i++) { 
       Team = scanner.next(); 
       score = scanner.nextInt(); 
       if(score > winnerScore){ 
       winnerTeam = Team; 
       winnerScore = score; 
       } 

      } 
      System.out.println("Winner team" + winnerTeam + "Score:" + winnerScore); 
     } 
     } 
関連する問題