嘿,伙计们,我不确定答案是否存在,我不太知道如何描述我的问题。我在这里看了大约45分钟,找不到太多能回答我问题的东西。因此,如果它已经被张贴在其他地方,我深表歉意。
我需要能够取一系列在一行上输入的数字,取只有6-10的数字,并找到6-10之间的数字的平均值和最大值。
示例:4 5 6 6 7 7 8 8 8 9 9和:8 6 3 10
问题是,如果你想收到X数量的输入,我已经找到了答案,但我正在做的任务是在一行上输入大约1-20个数字。
我不能在我的任务中使用Array,我希望我可以,因为它会让事情变得更容易。我完全不知道该怎么办。
谢谢你的帮助!
如果您的输入是一个以空格为delimeter的字符串,那么您可以执行类似的操作
String string = "4 5 6 6 7 7 7 8 8 8 8 9 9 9";
List<String> splittedStrings = Arrays.asList(string.split(" "));
之后,您就有了一个带有拆分输入的列表,您可以用任何您想象的方式进行处理(比如删除不需要的条目并将其相加)。
更新:
这样的东西即使没有数组或列表也应该工作:
String string = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20";
string = string.replaceAll("16|17|17|18|19|20|[1-5](?!0)", "").trim();
System.out.println(string);
int counter = 0;
int value = 0;
int max = 0;
while (!string.isEmpty()) {
String substring = "";
if (string.indexOf(" ") == -1) {
substring = string;
string = "";
} else {
substring = string.substring(0, string.indexOf(" "));
string = string.substring(string.indexOf(" ")).trim();
}
if (!substring.isEmpty()) {
int integer = Integer.valueOf(substring).intValue();
if (integer > max) {
max = integer;
}
value = value + integer;
counter++;
}
}
System.out.println("Max: " + max + "; Average: " + Double.valueOf(value) / counter);