next(); 从控制台获取字符串,如果字符串中包含空格,只会获取第一个作为接收的字符串。比如:输入hello I am a chinese!,接收到的只是hello。
nextLine();从控制台获取字符串,字符串中可以包含空格,以回车符作为接收结束标志。比如:输入hello I am a chinese!,接收到的是hello I am a chinese!。
如何让next();方法也可以向类似nextLine()一样接收包括空格的字符串呢?
Scanner类中有hasNext()方法,注意,这个方法是一个阻塞方法,表示每次从控制台读取一个字符串。为了保证能够结束输入,可以指定一个结束输入的字符串,比如"quit"表示输入结束。实现代码如下:
String s;
while(!sc.hasNext("quit"))
{
s = sc.next();
System.out.println(s);
}
这样,next();就有了和nextLine()类似的功能,同时输入"quit"字符串保证输入状态结束。
网友评论