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

我正在阅读Java的API,因为我对.nextLine().nextDouble()之间的区别有疑问。 在API中,它为.nextLine()说明了这一点:

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

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

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

那么这是否意味着.nextDouble()不会跳到一个新行,它只会读到双尾的结尾,然后在行的末尾停止? 这将有助于我理解我正在研究的一个程序。 谢谢你们的家伙们!

 nextDouble() 

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

编辑:Razvan是对的

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

 Ex: Bla bla bla 12231231.2121 bla bla. 

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