一、next和nextline同时使用的问题

因为最近发现当输入两行语句的时候,如果next在上,nextline在下,就会导致输入异常,所以总结了一下next和nextline的区别

 Scanner sc = new Scanner(System.in);System.out.println("next输入");String str1 = sc.next();System.out.println("nextline输入");String str2 = sc.nextLine();System.out.println("str1:"+str1);System.out.println("str2:"+str2);//运行结果:next输入123nextline输入str1:123str2:

可以发现next输入后,nextline输入直接被跳过去了

二、next和nextline

1.next

  • API文档解释:查找并返回来自次扫描器的下一个完整标记
  • 简单理解就是next只能识别一段完整的字符,遇到空格,回车等都会结束并返回值

2.nextline

  • API文档解释: 此扫描器执行当前行,并返回跳过的输入信息
  • 简单理解就是nextline会识别当前行的全部内容,遇到换行符才结束

三、异常原因及解决

知道了next和nextline的区别之后,导致异常的原因就很明显了,next只会读取字符内容,遗留下来的换行符被nextline读取到,所以直接结束了nextline的输入

解决方案:
解决方案就很简单啦,在要nextline上面再加一行nextline读取掉next留下来的换行符就好了

 Scanner sc = new Scanner(System.in);System.out.println("next输入");String str1 = sc.next();System.out.println("nextline输入");sc.nextline();String str2 = sc.nextLine();System.out.println("str1:"+str1);System.out.println("str2:"+str2);//运行效果next输入123nextline输入123str1:123str2:123

Java中next和nextline的区别相关推荐

  1. java中next()和nextline()用法区别(详细说明)

    java中next和nextline用法区别 一,方法说明 二,空格的情况(tab键相当于多个空个 1.测试代码 2.中间出现空格时 3.开头出现空格时 三,回车键的情况 分析:回车键的情况 四,常见 ...

  2. java中next()和nextline()用法区别

    个人笔记: 说明: next(): 1.停止录入的结束符有空格.Tab键和回车键(录入内容不含结束标志) 2.next()对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方 ...

  3. Java中next()和nextLine()的区别(为什么nextLine()输入回车没显示)

    前言 博主个人社区:开发与算法学习社区 博主个人主页:Killing Vibe的博客 欢迎大家加入,一起交流学习~~ 一.问题描述: 前几天遇到了一个小问题:为了简化,我手打了一段简单的代码,如下: ...

  4. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  5. java中ArrayList和LinkedList的区别

    首先来看ArrayList和LinkedList的集成类和接口的区别.// lang java public class ArrayList<E> extends AbstractList ...

  6. java中Runnable和Callable的区别

    文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...

  7. java中wait和sleep的区别

    文章目录 Wait和sleep的区别 唤醒wait和sleep java中wait和sleep的区别 在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别.并讨论一下怎么使用 ...

  8. java throw与throws_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

  9. Java中重载和复写的区别

    Java中重载和复写的区别 重载(overload) 复写(override) 区别和联系 重载(overload) 函数重载的最突出的例子就是类的构造函数,用户定义一个对象时可能会提供多种参数组合: ...

最新文章

  1. 安装libtiff包 Python3
  2. rabbitmq队列php应用,RabbitMQ工作队列应用
  3. c语言程序设计江宝钏第九章,C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案1...
  4. 改造独立部署(SCD)模式下.NET Core应用程序 dotnet的exe文件启动过程
  5. c#string倒数第二位插入字符_c#string倒数第二位插入字符_C#利用String类的IndexOf、LastIndexOf、...
  6. windows服务器下com6僵尸***删除
  7. ImageNet又被Long-Short Transformer 霸榜!
  8. [转]android MapView 定位与Overlay onTap事件处理
  9. [转]关于c#winform禁用关闭按钮的方法
  10. [Linux]不可重入函数
  11. 2007以学习软件设计开始
  12. TrueCrypt 密码找回工具
  13. 如何用c语言实现猜数字游戏?
  14. 关于Qt Creater中资源文件和文件路径的记录
  15. 【3分钟速读】那些你苦苦搜索的模板,是这么被捣腾出来的
  16. 微信开放平台创建应用时应用官网的问题
  17. 让制度去管理,而不是你去管理
  18. CSS3窗外闪电下雨动画js特效
  19. JAVA:获取用户访问ip地址
  20. 钳形万用表使用方法,如何测量电压、电流、电阻?

热门文章

  1. Delphi 学习ClientDataSet
  2. 常用的5个分布式缓存框架
  3. [JDBC连接] 使用JDBC操作数据库中的数据
  4. 人见人爱的最新 Python 爬虫利器
  5. Spring Boot 的接口限流算法优缺点深度分析
  6. 无盘服务器e5e3,Intel 的酷睿系列和至强E3有什么不同?哪个性能好?
  7. 远程连接数据库(SQLServer)
  8. linux的su,su - 和sudo的区别
  9. wireshark抓包红色_Wireshark网络抓包(一)——数据包、着色规则和提示
  10. Android7.0更换系统默认输入法