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个字符,如果可能,它会将该字符串转换为双字符串。