Java:.nextLine()和.nextDouble()的区别

时间:2012-07-18 23:42:47

标签: java methods

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

说明了这一点
  

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

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

  

“将输入的下一个标记扫描为double。如果下一个标记无法转换为有效的double值,则此方法将抛出InputMismatchException。如果转换成功,扫描程序将超过匹配的输入。”< / p>

这是否意味着.nextDouble()没有跳到一个新行并且它只读到双尾的结尾然后在行的末尾停止?这将有助于我理解我正在研究的一个程序。谢谢你们和gals!

2 个答案:

答案 0 :(得分:4)

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

Ex: Bla bla bla 12231231.2121 bla bla.

可以使用nextDouble()读取第4个标记。它读取13个字符,如果可能,它会将该字符串转换为双字符。

答案 1 :(得分:0)

nextDouble()

只从输入流中读取接下来的4个字节,它们构成了double,而不是前进到下一行,而nextLine()则是。另外我认为你需要理解一个新的行由字符串'\ n'指定,显然一个数字不包含换行符,所以'nextDouble()'不会'前进'到下一行。

编辑:Razvan是对的