【发布时间】:2018-03-21 12:12:00
【问题描述】:
我有一个字符串输入,该输入有一个团队名称和分数,由一个空格分隔。例如 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 确实是的,我会跳出框框思考问题,
+=的问题,谢谢,请随时接受答案
标签: java string for-loop input char