我正在阅读Java的API,因为我对.nextLine()
和.nextDouble()
之间的区别有疑问。在API中,它为.nextLine()
:
“使此扫描程序超过当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。位置设置为下一行的开头。”
足够简单......它会跳过您当前所在的行,然后返回您刚刚跳过的行。但对于.nextDouble()
,它说:
“将输入的下一个标记扫描为double。如果下一个标记无法转换为有效的double值,则此方法将抛出InputMismatchException。如果转换成功,扫描程序将超过匹配的输入。”< / p>
这是否意味着.nextDouble()
没有跳到一个新行并且它只读到双尾的结尾然后在行的末尾停止?这将有助于我理解我正在研究的一个程序。谢谢你们和gals!
答案 0 :(得分:4)
它读取下一个标记(两个分隔字符之间,通常是白色字符),而不是接下来的4个字节。然后,如果可以,它会将该令牌转换为double。
Ex: Bla bla bla 12231231.2121 bla bla.
可以使用nextDouble()读取第4个标记。它读取13个字符,如果可能,它会将该字符串转换为双字符。
答案 1 :(得分:0)
nextDouble()
只从输入流中读取接下来的4个字节,它们构成了double,而不是前进到下一行,而nextLine()则是。另外我认为你需要理解一个新的行由字符串'\ n'指定,显然一个数字不包含换行符,所以'nextDouble()'不会'前进'到下一行。
编辑:Razvan是对的