Java - 摆脱空终结器

时间:2014-10-03 05:43:52

标签: java

由于上一次扫描中的回车键,我需要使用.nextLine()来获取\n时需要额外扫描一行吗?我的意思是,在需要什么样的扫描语句后,我需要额外的扫描线来获取\n。的.next()。nextDouble()。nextInt?我尝试在线查看,但无法找到答案。

1 个答案:

答案 0 :(得分:5)

每当您使用next()或任何其他读取令牌Scanner方法时,令牌后面的任何空格都会保留在Scanner中。这包括换行符,如果恰好是令牌后面的字符。大部分时间都可以。

当您使用nextLine()时,所读取的内容是包括下一行结尾在内的所有内容。如果你想要一整行文字,这没关系。

问题在于你混合使用这两种策略。如果您有一行包含单个令牌,并且您使用next()(或nextInt()nextDouble()或任何类似方法)阅读,则以下调用{{1只会读取令牌后面的行尾,而不是下一行。这是一种需要额外nextLine()电话的情况。

有关您需要此类型的计划的示例,请参阅java string variable using .next() or .nextLine(),其中OP呼叫nextLine(),然后呼叫nextInt()而不使用"额外" nextLine()致电。