Scanner读取回车遗留问题

伍陆柒 172 2022-04-01

Scanner以及回车遗留问题

1. next() 与 nextLine() 区别

next()

  1. 一定要读取到有效字符后才可以结束输入。以空格、回车、Tab键都会视为结束符
  2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next() 不能得到带有空格的字符串。
  5. 回车符号不会被清除,会直接留在缓冲区

nextLine()

  1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白,但是回车符号会被自动清除,不会残留在缓冲区

nextInt()

  1. 与next一致,回车符号也会留在缓冲区

nextFloat()nextDouble(),都同next一致,所以在输入时候,注意回车符号是否存留问题

如果存留,请用nextLine清除


# Java # 细节问题