【发布时间】:2012-07-18 23:42:46
【问题描述】:
我正在阅读 Java 的 API,因为我对 .nextLine() 和 .nextDouble() 之间的区别有疑问。在 API 中,.nextLine() 是这样说的:
“使扫描仪前进到当前行并返回被跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。位置设置为下一行的开头。”
很简单...它会跳过您所在的当前行,然后返回您刚刚跳过的行。但是对于.nextDouble(),它是这样说的:
“将输入的下一个标记扫描为双精度值。如果下一个标记无法转换为有效的双精度值,此方法将抛出 InputMismatchException。如果翻译成功,扫描仪会前进超过匹配的输入。”
那么这是否意味着.nextDouble() 不会跳到新行,它只会读取到双精度数的末尾,然后在行尾停止?这将有助于我理解我现在正在开发的程序。谢谢大家!
【问题讨论】:
-
是的,如果您知道下一个输入在双精度后的下一行,您需要自己调用 nexLine。
-
假设你的 Scanner 被命名为
scanner,如果你想读取一个 double 并且它是唯一的在线你可以做类似Double.parseDouble(scanner.nextLine());