由于上一次扫描中的回车键,我需要使用.nextLine()
来获取\n
时需要额外扫描一行吗?我的意思是,在需要什么样的扫描语句后,我需要额外的扫描线来获取\n
。的.next()。nextDouble()
。nextInt?我尝试在线查看,但无法找到答案。
答案 0 :(得分:5)
每当您使用next()
或任何其他读取令牌的Scanner
方法时,令牌后面的任何空格都会保留在Scanner
中。这包括换行符,如果恰好是令牌后面的字符。大部分时间都可以。
当您使用nextLine()
时,所读取的内容是包括下一行结尾在内的所有内容。如果你想要一整行文字,这没关系。
问题在于你混合使用这两种策略。如果您有一行包含单个令牌,并且您使用next()
(或nextInt()
,nextDouble()
或任何类似方法)阅读,则以下调用{{1只会读取令牌后面的行尾,而不是下一行。这是一种需要额外nextLine()
电话的情况。
有关您需要此类型的计划的示例,请参阅java string variable using .next() or .nextLine(),其中OP呼叫nextLine()
,然后呼叫nextInt()
而不使用"额外" nextLine()
致电。