美文网首页
Java的Scanner类的next与nextLine用法区别

Java的Scanner类的next与nextLine用法区别

作者: 小沙鹰168 | 来源:发表于2017-04-11 16:24 被阅读0次

    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"字符串保证输入状态结束。

    相关文章

      网友评论

          本文标题:Java的Scanner类的next与nextLine用法区别

          本文链接:https://www.haomeiwen.com/subject/thruattx.html