私は、その入力にチーム名とスコアが1つのスペースで区切られた文字列入力を持っています。例えばbb 3
、teamd 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);
}
をしかし、それは知事に動作していない、それはプリント配線した結果、どのようですその仕事を期待どおりにするには?
どのようにそれを簡素化するが、あなたが行くようにちょうどの処理について。入力されたラインのスコアが最大の場合は、番号とチーム名を格納します - String.split( "、"); –
私はあなたのコードを試していないが、大きな問題は 'str + = scanner.nextLine();の連結であると思います。新しい行は前の行' number'の最後にまっすぐに追加されます –
@ScaryWombat確かにはい、私は '+ ='、感謝の気持ちで答えを受け入れるように気をつけてください。 – user1058652