为什么我不能在double类型的方法中返回double类型的数组?

时间:2014-09-09 04:28:41

标签: java arrays double

为什么这不起作用?

我正在尝试创建一个名为double的{​​{1}}类型的数组。然后解析一些文本,寻找关键字"范围:",然后添加文本中接下来的两个双打。我的问题是当我尝试返回这个数组时。

s

编辑:
我得到的错误是"此方法必须返回double []"

类型的结果

我感动了#34;返回s;"到底并改变了我的指数,但我仍然得到这个错误。

你可以使用stripped ="范围:28.65 - 63.72&#34 ;;作为我试图解析的一个例子。

2 个答案:

答案 0 :(得分:2)

return s成为最后一句话

public double[] getDaysRange() {

    double[] s = new double[2];
    Scanner parse = new Scanner(stripped);

    while (parse.hasNext()) {
        if (parse.next().equals("Range:")) {

            while (!parse.hasNextDouble()) {
                parse.next();
            }

            s[0] = parse.nextDouble();
            while (!parse.hasNextDouble()) {
                parse.next();
            }

            s[1] = parse.nextDouble();
            // return s; // Not here...
        }
    }
    return s; // Here
}

这将确保......

  1. 您摆脱了错误消息
  2. 您返回整个数组,而不仅仅是首次阅读...
  3. 您现在遇到的问题是提前了解您可能需要阅读多少元素......

    如果您只对前两个值感兴趣,可以打破循环

    //...
    s[1] = parse.nextDouble();
    // return s; // Not here...
    break;
    

    这将使你离开循环并处理它之后发生的事情(namly return语句。)

    如果您对所有可能的值感兴趣,则需要使用java.util.List或使用预期值的数量预先设定文件的种子,或者将预期数量的值传递给方法...

答案 1 :(得分:2)

您可以,但您的方法应该通过方法的所有逻辑出口返回double数组。所以你需要

        return s;

在你的顶级while循环之外。