4

.nextLine()我正在阅读 Java 的 API,因为我对和之间的区别有疑问.nextDouble()。在 API 中,它为.nextLine()

“将此扫描器前进到当前行并返回已跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。位置设置为下一行的开头。”

很简单......它会跳过您所在的当前行,然后返回您刚刚跳过的行。但是对于.nextDouble(),它是这样说的:

“将输入的下一个标记扫描为双精度值。如果下一个标记无法转换为有效的双精度值,则此方法将抛出 InputMismatchException。如果转换成功,扫描仪会超过匹配的输入。”

那么这是否意味着它.nextDouble()不会跳到新行并且它只读取到双精度数的末尾然后在行尾停止?这将有助于我理解我现在正在开发的程序。谢谢大家!

4

2 回答 2

5

它读取下一个标记(在 2 个分隔字符之间,通常是白色字符),而不是接下来的 4 个字节。然后,如果可以的话,它会将该标记转换为双精度。

Ex: Bla bla bla 12231231.2121 bla bla.

可以使用 nextDouble() 读取第 4 个令牌。它读取 13 个字符,并尽可能将该字符串转换为双精度字符。

于 2012-07-18T23:48:43.820 回答
0
nextDouble()

仅从构成双精度的输入流中读取接下来的 4 个字节,并且不会前进到下一行,而 nextLine() 会。另外我认为您需要了解字符串'\ n'指定了一个新行,并且显然一个数字不会包含换行符,因此'nextDouble()'不会'前进'到下一行。

编辑:拉兹万是对的

于 2012-07-18T23:45:08.317 回答