多个整数一行,不使用数组



嘿,伙计们,我不确定答案是否存在,我不太知道如何描述我的问题。我在这里看了大约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);

最新更新