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

 

posted on 2017-12-06 14:51  bingo1717  阅读(279)  评论(0编辑  收藏  举报