文章目录

  • 前言
    • 先来说一下next()、nextInt()、nextLine()的意思吧
    • 简单示例:
    • 问题一:先next()再nextInt()出现InputMismatchException错误
    • 问题二:先nextInt()再nextLine()程序读完整数后直接结束
  • 总结

前言

在学习输入输出时,遇到输入next()、nextLine()、nextInt()交叉使用时会出现错误,总结一下,避免入坑!


先来说一下next()、nextInt()、nextLine()的意思吧

  • next() 只读取一个,遇到空格就结束;
  • nextInt() 只读取一个整数类型;
  • nextLine() 读取一行,遇到回车结束;

简单示例:

有下面的几行代码说明问题。当我想要输入姓名、年龄时,都没有问题。

public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入姓名:");String name = scan.nextLine();//输入cao qing   输出cao qingSystem.out.println("姓名:" + name);System.out.println("请输入姓名:");String name1 = scan.next();//输入cao qing   输出cao System.out.println("姓名:" + name1);}
请输入姓名:
cao qing
姓名:cao qing
请输入姓名:
cao qing
姓名:cao

public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入姓名:");String name = scan.nextLine();//输入cao qing   输出cao qingSystem.out.println("姓名:" + name);System.out.println("请输入年龄:");int age = scan.nextInt();//输入18 输出18System.out.println("年龄:" + age);}
请输入姓名:
caoqing
姓名:caoqing
请输入年龄:
18
年龄:18

问题一:先next()再nextInt()出现InputMismatchException错误

 public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入姓名:");String name = scan.next();//输入cao qing   输出caoSystem.out.println("姓名:" + name);System.out.println("请输入年龄:");int age = scan.nextInt();//输入18 输出18System.out.println("年龄:" + age);}
请输入姓名:
cao qing
姓名:cao
请输入年龄:
Exception in thread "main" java.util.InputMismatchException

原因:InputMismatchException指的是输入的参数不匹配,在使用next时,输入cao qing ,但是只读取了cao ,所以在读取年龄时自动读取了qing,需要整数读取了一个字符串,所以发生报错。

问题二:先nextInt()再nextLine()程序读完整数后直接结束

 public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入年龄:");int age = scan.nextInt();//输入18 输出18System.out.println("年龄:" + age);System.out.println("请输入姓名:");String name = scan.nextLine();//输入cao qing   输出caoSystem.out.println("姓名:" + name);}
请输入年龄:
18
年龄:18
请输入姓名:
姓名:

原因:nextInt()读取完整数后,光标在整数的后面,而nextLine()直接读取了回车,就结束了,不能有输入的机会。
解决办法:尽量nextInt不要在nextLine前面使用,放在后面使用是可以的。


总结

那么我们在使用的时候就尽量避免这类的错误:
next()不要放在nextInt()之前使用;
使用nextLine()时,前面一定不要有读整数。

注意next()、nextLine()、nextInt()的用法相关推荐

  1. nextint() java_java中random.nextint()的用法

    java中random.nextint()的用法 发布时间:2020-06-15 14:41:57 来源:亿速云 阅读:193 作者:鸽子 random.nextInt()的用法 1.不带参数的nex ...

  2. java控制台next_java读取控制台输入以及next() ,nextLine(), nextInt() 和nextDouble()的比较...

    (1)读取控制台输入 java的控制台输入由System.in完成. 为了得到一个绑定到控制台的字符流,你能够把System.in包装在一个BufferedReader对象中建立一个字符流.html ...

  3. next(), nextLine(),nextInt()报错分析

    首先,区别next和nextLine next next输入的是连续字符串,字符串里不包含空格,遇有效字符开始输入(也就是说在输入有效字符之前,输入空格是没用的),并且遇空格或者enter停止输入 n ...

  4. rand.nextint()的用法

    博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): rand.nextint() 自从JDK最初版本发布起,我们就可以使用java.util.Random类产生随机数了.在 ...

  5. random.nextInt()的用法

    1.不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0) 2.带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数 例如: int x=new Ran ...

  6. 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过

    题目 这题已经给了电梯到达每一层的顺序,不需要自己调度电梯. 是个水题. 坑 & 心得 测试用例1 51 88 35 28 15 62 61 78 89 36 58 95 95 28 94 3 ...

  7. 博主在阿里笔试中拿了0分,竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别

    前言 以前做算法题,都是实现一个方法,需要的参数会在方法参数中直接给出,而且需要的返回值直接在方法中 return 就好了.但是,这次阿里笔试,让博主遭遇百万点暴击,需要的参数居然要到输入流中读取,而 ...

  8. 关于random.nextInt

    1.不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0) 2.带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数 random.nextInt(5) ...

  9. Java教程 -- 廖雪峰

    Java快速入门 Java简介 Java介于编译型语言和解释型语言之间.编译型语言如C.C++,代码是直接编译成机器码执行,解释型语言如Python可以由解释器直接加载源码然后运行,代价就是运行效率太 ...

最新文章

  1. sql server 数据库备份方案
  2. 计算机的云是什么意思_高考倒计时!现在学什么专业好?答案是……
  3. python语言入门z-python基础语法_8循环语句
  4. 失效日期 软件测试案例_软件异常测试经验总结(精)
  5. 为什么CRM Opportunity的删除会触发一个通向BW系统的RFC
  6. guid mysql_关于MySQL:MySQL-如何搜索GUID
  7. 苹果全新10.2英寸iPad再爆实锤 或造成史上最乱的iPad产品线
  8. 从零实现深度学习框架——实现常见运算的计算图(上)
  9. A.01.03-模块的输入—模拟量输入
  10. UMLChina公众号文章精选(20220918更新精选)
  11. 自动化测试平台化[v1.0.0][模块化设计方法]
  12. 设计稿750px 配置rem
  13. 陆奇加入拼多多,担任技术委员会主席!
  14. FOFA网络空间搜索引擎使用教程
  15. “辶”“廴”偏旁的字五笔拆字
  16. 软件测试自动化分类,自动化测试的主要分类
  17. Android客户端连接服务器- OKHttp的简单实用方法
  18. STM32单片机使用ADC功能驱动手指检测心跳模块
  19. 创业公司如何实施敏捷开发
  20. 利用两期土地利用数据构造混淆矩阵(土地利用面积转移矩阵)

热门文章

  1. 【论文精读】Improving Extreme Low-Light Image Denoising via Residual Learning
  2. 将字符串转换为数字的函数
  3. c语言程序精品课程试题
  4. python用于股票预测有用吗_卧槽,我学会了用Python预测股票价格
  5. docker search 和 docker pull 使用
  6. mysql计算年增长率
  7. 尚无忧【已对接硬件】共享自习室,共享麻将馆,共享茶室,共享空间,共享台球室,共享健身房无人值thinkphp开发
  8. 微信公众平台功能大杂烩 - ip/域名查询 车牌号归属地查询 手机归属地查询 公交查询 英汉互译...
  9. 计算机毕业设计Java二手交易网站(源码+系统+mysql数据库+lW文档)
  10. 最便宜的html手机,狠便宜的11天 全网最便宜的手机就在这