从接受的扫描仪读取参数

时间:2016-02-07 16:21:43

标签: java

我被分配了以下简单任务:

1)接受Scanner参数并从中读取以空格分隔的单词。

2)如果单词是有效的实数,例如0.1或-3.14159或87,则将该数字添加到运行总计中。

3)当扫描仪中没有可用的输入时,返回总数。

这是我到目前为止所产生的魔力:

public static double sumReal(Scanner input) {
 while(input.hasNext()) {
}
  }     

我理解" hasNext"返回一个布尔值,但是如何确认它是double而不是字符串?

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:1)

也许hasNextDouble() - 方法可以解决问题。

//some code
while (input.hasNextDouble()) {
//do something
}

答案 1 :(得分:0)

使用

while (isDouble(input.nextLine())) {
          // your code
    }

&安培;添加方法以检查数字是否为Double

 public static boolean isDouble(String str) {
        try {
            Double.parseDouble(str);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }