注意next()、nextLine()、nextInt()的用法
文章目录
- 前言
- 先来说一下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()的用法相关推荐
- nextint() java_java中random.nextint()的用法
java中random.nextint()的用法 发布时间:2020-06-15 14:41:57 来源:亿速云 阅读:193 作者:鸽子 random.nextInt()的用法 1.不带参数的nex ...
- java控制台next_java读取控制台输入以及next() ,nextLine(), nextInt() 和nextDouble()的比较...
(1)读取控制台输入 java的控制台输入由System.in完成. 为了得到一个绑定到控制台的字符流,你能够把System.in包装在一个BufferedReader对象中建立一个字符流.html ...
- next(), nextLine(),nextInt()报错分析
首先,区别next和nextLine next next输入的是连续字符串,字符串里不包含空格,遇有效字符开始输入(也就是说在输入有效字符之前,输入空格是没用的),并且遇空格或者enter停止输入 n ...
- rand.nextint()的用法
博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): rand.nextint() 自从JDK最初版本发布起,我们就可以使用java.util.Random类产生随机数了.在 ...
- random.nextInt()的用法
1.不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0) 2.带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数 例如: int x=new Ran ...
- 【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 ...
- 博主在阿里笔试中拿了0分,竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别
前言 以前做算法题,都是实现一个方法,需要的参数会在方法参数中直接给出,而且需要的返回值直接在方法中 return 就好了.但是,这次阿里笔试,让博主遭遇百万点暴击,需要的参数居然要到输入流中读取,而 ...
- 关于random.nextInt
1.不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0) 2.带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数 random.nextInt(5) ...
- Java教程 -- 廖雪峰
Java快速入门 Java简介 Java介于编译型语言和解释型语言之间.编译型语言如C.C++,代码是直接编译成机器码执行,解释型语言如Python可以由解释器直接加载源码然后运行,代价就是运行效率太 ...
最新文章
- sql server 数据库备份方案
- 计算机的云是什么意思_高考倒计时!现在学什么专业好?答案是……
- python语言入门z-python基础语法_8循环语句
- 失效日期 软件测试案例_软件异常测试经验总结(精)
- 为什么CRM Opportunity的删除会触发一个通向BW系统的RFC
- guid mysql_关于MySQL:MySQL-如何搜索GUID
- 苹果全新10.2英寸iPad再爆实锤 或造成史上最乱的iPad产品线
- 从零实现深度学习框架——实现常见运算的计算图(上)
- A.01.03-模块的输入—模拟量输入
- UMLChina公众号文章精选(20220918更新精选)
- 自动化测试平台化[v1.0.0][模块化设计方法]
- 设计稿750px 配置rem
- 陆奇加入拼多多,担任技术委员会主席!
- FOFA网络空间搜索引擎使用教程
- “辶”“廴”偏旁的字五笔拆字
- 软件测试自动化分类,自动化测试的主要分类
- Android客户端连接服务器- OKHttp的简单实用方法
- STM32单片机使用ADC功能驱动手指检测心跳模块
- 创业公司如何实施敏捷开发
- 利用两期土地利用数据构造混淆矩阵(土地利用面积转移矩阵)
热门文章
- 【论文精读】Improving Extreme Low-Light Image Denoising via Residual Learning
- 将字符串转换为数字的函数
- c语言程序精品课程试题
- python用于股票预测有用吗_卧槽,我学会了用Python预测股票价格
- docker search 和 docker pull 使用
- mysql计算年增长率
- 尚无忧【已对接硬件】共享自习室,共享麻将馆,共享茶室,共享空间,共享台球室,共享健身房无人值thinkphp开发
- 微信公众平台功能大杂烩 - ip/域名查询 车牌号归属地查询 手机归属地查询 公交查询 英汉互译...
- 计算机毕业设计Java二手交易网站(源码+系统+mysql数据库+lW文档)
- 最便宜的html手机,狠便宜的11天 全网最便宜的手机就在这