next()和nextLine()的区别

众所周知,在Java中输入字符串有两种方法,就是next()和nextLine(),今天研究了一下其中的区别。

首先,nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符。

所以next()不会得到带空格的字符串,而nextLine()可以得到带空格的字符串。

例如:

Scanner scanner = new Scanner(new BufferedInputStream(System.in));
String s = scanner.next();

你输入“bonnie ukfire”,s中只会存储“bonnie”。

如果用nextLine():

Scanner scanner = new Scanner(new BufferedInputStream(System.in));
String s = scanner.nextLine();


输入“bonnie ukfire”,即使中间有空格,s中也会把空格一并存入“bonnie ukfire”。


如果在next()方法后紧跟nextLine()方法,nextLine()方法会吃掉next()的回车符,造成第二个字符串接受了回车符,所以通常在next()等方法后加上一个

scanner.nextLine();

来吞掉回车符,如next(),nextInt(),nextFloat(),nextDouble()等。

原文地址:https://www.cnblogs.com/bingo1717/p/7992682.html