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()等。