J'ai une entrée de chaîne qui, cette entrée a un nom d'équipe et un score séparés par un espace. par exemple bb 3
, teamd 5
le gagnant doit être teamd
Caractères spécifiques à l'impression
Afin d'obtenir l'équipe gagnante qui a marqué score le plus élevé, je fais ce qui suit:
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);
}
Mais il fonctionne pas préfet, il est fait câblé d'impression, comment faire ce travail comme prévu?
que diriez-vous simplifier le traitement, mais juste comme vous allez. Si le score des lignes saisies est le plus grand, alors stockez le nombre et le nom de l'équipe - utilisez String.split (","); –
Je n'ai pas essayé votre code, mais j'imagine qu'un gros problème est la concaténation de 'str + = scanner.nextLine();' La nouvelle ligne va être ajoutée directement à la fin des lignes précédentes 'number' –
@ScaryWombat en effet oui, je vais penser hors boîte, mon problème avec '+ =', merci, n'hésitez pas à le faire accepter la réponse – user1058652