嘿伙计们我不确定答案是否存在,我不太清楚如何描述我的问题。我在这里看了大约45分钟,找不到太多可以回答我的问题。如果它已经在其他地方发布,我很抱歉。
我需要能够在一行中输入一系列数字,并且只需要6到10的数字,并找到6到10之间的数字的平均值和最大值。
示例:4 5 6 6 7 7 7 8 8 8 8 9 9 9 并且:8 6 3 10
问题在于,如果您希望接收X输入数量,我找到了答案,但我正在进行的任务将在一条线路上输入类似1到20个数字的任何地方。
我不能将Array用于我的任务,我希望我能这样做,因为它会让事情变得更容易。我完全迷失了该怎么做。
感谢您的帮助!
答案 0 :(得分:0)
如果您的输入是一个空格为分隔符的字符串,您可以执行类似这样的操作
String string = "4 5 6 6 7 7 7 8 8 8 8 9 9 9";
List<String> splittedStrings = Arrays.asList(string.split(" "));
之后你有一个带有分割输入的List,你可以用你想象的任何方式处理它(比如删除不需要的条目并将它们相加)。
<强>更新强>
即使没有数组或列表,这样的东西也应该有效:
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);